Android Oreo SDKを使用してGoogleNexus 5xでテストしています。アプリから通知を受け取っても、ホーム画面のアプリアイコンに通知バッジが見つかりません。アプリのショートカットに番号が表示されません。以下はスニペットです。
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)
がそこに表示されます。
詳細については、こちらを参照してください: 通知バッジ および 通知バッジの調整 。
.setBadgeIconType(R.mipmap.ic_launcher_round)
を参照して、 this を読むことをお勧めします。
**[〜#〜]編集[〜#〜]**(誤解された質問)
Nexus 5Xエミュレーターでコードをテストしました(for
ループなし、mNotific.notify(ncode, n);
を1回だけ呼び出します)。通知ドットが表示され、100%動作します。これはコード関連の問題ではありません。
Nexus 5X物理デバイスのネイティブランチャーアプリ(Google Now)は、デバイスのOreo設定で通知ドットを「オン」にできる場合でも、通知ドットをサポートしていません。 this および this リンクを参照してください。 Nexus 5X物理デバイスで通知ドットを有効にするには、次のようなカスタムPixelLauncherアプリをインストールする必要があります Rootless Pixel Launcher 。