Android 中的通知徽章 O
Notification Badges in Android O
我正在使用 Google Nexus 5x 和 Android Oreo SDK.I 进行测试,在主屏幕的应用程序图标中找不到通知标志,即使我收到来自应用程序的通知,应用程序快捷方式也没有显示 Number.The 以下是片段:
final NotificationManager mNotific=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence name="Ragav";
String desc="this is notific";
int imp=NotificationManager.IMPORTANCE_HIGH;
final String ChannelID="my_channel_01";
NotificationChannel mChannel=new NotificationChannel(ChannelID,name,imp);
mChannel.setDescription(desc);
mChannel.setLightColor(Color.CYAN);
mChannel.canShowBadge();
mChannel.setShowBadge(true);
mNotific.createNotificationChannel(mChannel);
final int ncode=1;
String Body="This is testing notific";
final Notification n= new Notification.Builder(getApplicationContext(),ChannelID)
.setContentTitle(getPackageName())
.setContentText(Body)
.setNumber(5)
.setBadgeIconType(R.mipmap.ic_launcher_round)
.setSmallIcon(R.mipmap.ic_launcher_round)
.setAutoCancel(true).build();
for(int i=0;i<25;i++) {
Thread.sleep(1000);
mNotific.notify(ncode, n);
}
您无法自定义应用启动器图标上显示的通知标记(点)的外观。但是,当您长按应用程序的启动器图标时,您可以自定义长按菜单的某些元素,例如,您尝试的 .setNumber(5)
会显示在那里。
请参阅此处以获得更多见解:Notification Badges and Adjusting Notification Badges。
关于.setBadgeIconType(R.mipmap.ic_launcher_round)
,我建议你阅读this。
** 编辑 ** (问题被误解)
我已经在 Nexus 5X 模拟器上测试了您的代码(没有 for
循环,仅调用 mNotific.notify(ncode, n);
一次),它可以 100% 正常工作并显示通知点。这不是代码相关的问题。
Nexus 5X 物理设备的本机启动器应用程序(Google 现在)不支持通知点,即使您可以在设备的 Oreo 设置中打开通知点 "on"。参考this and this link. To enable notification dots on a Nexus 5X physical device you'll have to install a custom Pixel Launcher app such as this Rootless Pixel Launcher.
我正在使用 Google Nexus 5x 和 Android Oreo SDK.I 进行测试,在主屏幕的应用程序图标中找不到通知标志,即使我收到来自应用程序的通知,应用程序快捷方式也没有显示 Number.The 以下是片段:
final NotificationManager mNotific=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence name="Ragav";
String desc="this is notific";
int imp=NotificationManager.IMPORTANCE_HIGH;
final String ChannelID="my_channel_01";
NotificationChannel mChannel=new NotificationChannel(ChannelID,name,imp);
mChannel.setDescription(desc);
mChannel.setLightColor(Color.CYAN);
mChannel.canShowBadge();
mChannel.setShowBadge(true);
mNotific.createNotificationChannel(mChannel);
final int ncode=1;
String Body="This is testing notific";
final Notification n= new Notification.Builder(getApplicationContext(),ChannelID)
.setContentTitle(getPackageName())
.setContentText(Body)
.setNumber(5)
.setBadgeIconType(R.mipmap.ic_launcher_round)
.setSmallIcon(R.mipmap.ic_launcher_round)
.setAutoCancel(true).build();
for(int i=0;i<25;i++) {
Thread.sleep(1000);
mNotific.notify(ncode, n);
}
您无法自定义应用启动器图标上显示的通知标记(点)的外观。但是,当您长按应用程序的启动器图标时,您可以自定义长按菜单的某些元素,例如,您尝试的 .setNumber(5)
会显示在那里。
请参阅此处以获得更多见解:Notification Badges and Adjusting Notification Badges。
关于.setBadgeIconType(R.mipmap.ic_launcher_round)
,我建议你阅读this。
** 编辑 ** (问题被误解)
我已经在 Nexus 5X 模拟器上测试了您的代码(没有 for
循环,仅调用 mNotific.notify(ncode, n);
一次),它可以 100% 正常工作并显示通知点。这不是代码相关的问题。
Nexus 5X 物理设备的本机启动器应用程序(Google 现在)不支持通知点,即使您可以在设备的 Oreo 设置中打开通知点 "on"。参考this and this link. To enable notification dots on a Nexus 5X physical device you'll have to install a custom Pixel Launcher app such as this Rootless Pixel Launcher.