沿应用图标显示通知红色徽章

Posted

技术标签:

【中文标题】沿应用图标显示通知红色徽章【英文标题】:Display Notification red badge along the App Icon 【发布时间】:2016-07-17 14:26:34 【问题描述】:

我刚刚注意到,当我创建通知时,在其他版本为 4.4 及以下版本的手机上,应用程序图标上没有显示通知徽章,只有通知栏中的通知。

我想在各种安卓版本的应用图标旁边显示红色通知徽章,就像下面的截图一样:

这是我用来显示通知的代码,基本上用户会在通知栏上收到通知,但不会收到应用程序中的红色徽章编号:

private void sendNotification(NotificationVM source) 
    Intent intent = new Intent(this, NotificationActivity.class);
    intent.putExtra(IntentPutNameConstant.NotificationActivity.NOTIFICATION_ID, source.getNotificationId());
    intent.putExtra(IntentPutNameConstant.NotificationActivity.NOTIFICATION_TYPE, source.getNotificationType());
    intent.putExtra(IntentPutNameConstant.NotificationActivity.USER_FROM_USERNAME, source.getUserFrom().getUsername());
    intent.putExtra(IntentPutNameConstant.NotificationActivity.MESSAGE, source.getMessage());
    intent.putExtra(IntentPutNameConstant.NotificationActivity.SOURCE_ID, source.getSourceId());
    intent.putExtra(IntentPutNameConstant.NotificationActivity.EXTERNAL_URL, source.getExternalUrl());

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
            PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_app_launcher_72)
            .setContentTitle("Investagrams")
            .setContentText(source.getMessage())
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

    //Vibration
    notificationBuilder.setVibrate(new long[]  0, 200, 200, 200, 200, 200 );


    //LED
    //notificationBuilder.setLights(Color.RED, 3000, 3000);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    Notification notif = notificationBuilder.build();
    notif.flags |= Notification.FLAG_AUTO_CANCEL;

    /*notif.ledARGB = 0xFFff0000;
    notif.flags = Notification.FLAG_SHOW_LIGHTS;
    notif.ledOnMS = 100;
    notif.ledOffMS = 100;*/

    notificationManager.notify((int)source.getNotificationId() /* ID of notification */, notif);


【问题讨论】:

这是启动器的工作,与您应用的通知无关。例如 Nova Launcher 可以显示通知计数,但您将依赖具有通知计数显示机制的用户。 【参考方案1】:

这是特定于设备制造商的。具有此功能的设备会自动执行此操作。它计算当时显示的通知总数并显示该数量。

【讨论】:

以上是关于沿应用图标显示通知红色徽章的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 在推送通知上显示应用程序图标徽章

如何给应用程序图标一个没有数字的通知徽章?

Flutter - 推送通知到达时在应用程序图标上显示徽章编号

如何在后台的android应用程序图标上计算推送通知消息徽章

Android 应用程序图标中的通知计数徽章

Expo - 实施通知设置应用程序图标徽章编号