web-dev-qa-db-fra.com

Badges de notification sous Android O

Je teste avec Google Nexus 5x avec Android Oreo SDK.Je n'arrive pas à trouver les badges de notification dans l'icône de l'application dans l'écran d'accueil, même si j'ai reçu une notification de l'application et que le raccourci de l'application ne montre pas le numéro. Le texte suivant est extrait:

 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);
            }
6
Ragavendra M

Vous ne pouvez pas personnaliser l'apparence des badges de notification (points) apparaissant sur l'icône du lanceur de votre application. Vous pouvez toutefois personnaliser certains éléments du menu de la presse longue lorsque vous appuyez longuement sur l'icône du lanceur de votre application, le .setNumber(5) que vous avez essayé s'affichera par exemple ici.

Reportez-vous ici pour plus d'informations: Badges de notification et Réglage des badges de notification .

En vous référant à .setBadgeIconType(R.mipmap.ic_launcher_round), je vous suggère de lire this .


** MODIFIER ** (question mal comprise)

J'ai testé votre code (sans la boucle for, appelant mNotific.notify(ncode, n); une seule fois) sur un émulateur Nexus 5X et il fonctionne à 100% avec les points de notification affichés. Ce n'est pas un problème lié au code.

L'application de lancement native du périphérique physique du Nexus 5X (Google Now) ne prend pas en charge les points de notification, même si vous pouvez activer les points de notification "dans" dans les paramètres Oreo du périphérique. Reportez-vous à this et this link. Pour activer les points de notification sur un périphérique physique Nexus 5X, vous devez installer une application Pixel Launcher personnalisée telle que celle-ci Rootless Pixel Launcher .

1
Wess