【发布时间】:2017-04-02 17:25:42
【问题描述】:
在 Android O 开发者预览版中,谷歌引入了应该显示在启动器图标上的通知徽章。我正在使用来自开发频道的 Android O 模拟器。我编写了一个简单的代码来显示通知徽章,但它似乎不起作用 -
Notification notification = new Notification.Builder(getApplicationContext())
.chooseBadgeIcon(Notification.BADGE_ICON_SMALL)
.setSmallIcon(android.R.drawable.btn_star)
.setNumber(10)
.build();
mNotificationManager.notify(1, notification);
它只是显示为正常通知。
API - https://developer.android.com/reference/android/app/Notification.Builder.html#chooseBadgeIcon(int)
有人做过这方面的工作吗?我错过了什么吗?
在设置中启用了显示徽章。
也尝试过 NotificationChannel。不工作-
NotificationChannel mChannel = new NotificationChannel("TestBadge_id", "TestBadgeName", NotificationManager.IMPORTANCE_HIGH);
mChannel.enableLights(true);
mChannel.setLightColor(Color.RED);
mChannel.setShowBadge(true);
mNotificationManager.createNotificationChannel(mChannel);
Notification notification = new Notification.Builder(getApplicationContext())
.chooseBadgeIcon(Notification.BADGE_ICON_SMALL)
.setSmallIcon(android.R.drawable.btn_star)
.setNumber(10)
.setChannel("TestBadge_id")
.build();
mNotificationManager.notify(1, notification);
【问题讨论】:
-
我无法在带有固件映像的 Nexus 5X 上使用此功能,即使在我选择加入徽章的频道上也是如此。我的猜测是这还没有实现。
-
@CommonsWare 有没有办法通过代码选择我丢失的徽章?如果你能分享一个代码 sn-p,我可以试试。
-
我很确定您需要一个兼容的启动器来使这项工作端到端。由于还没有任何启动器支持此功能,因此您可能看不到它的效果。
-
@AniketThakur:我指的是
setShowBadge(true)上的NotificationChannel,然后在创建Notification时使用该频道。 -
@Shmuel:我希望随 Google API 模拟器提供的启动器和硬件固件构建最终会支持徽章。我很惊讶他们似乎还没有这样做。
标签: android badge android-8.0-oreo