web-dev-qa-db-fra.com

L'icône ne s'affiche pas dans la notification dans Android nougat

J'ai fait des recherches à ce sujet et j'ai découvert que addAction (int icon, CharSequence title, PendingIntent intent) est obsolète, j'ai donc utilisé addAction (Notification.Action action). Dans les deux cas, l'icône ne peut pas être vue.

NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.ic_share, "", pendingIntent).build();

notificationBuilder.addAction(action);

Cependant, le texte semble fonctionner, mais je l'ai laissé vide, il y a donc un espace vide sous l'image principale, où l'icône est censée être affichée

20
MrRobot9

Ce n'est pas une erreur, mais un changement de conception avec Android Nougat. Icônes définies par addAction (action Notification.Action) ne sont plus affichés par les appareils. Ils sont toujours nécessaires pour les appareils plus anciens et Android Portez des appareils!

Citation développeurs Google blog Android

Vous remarquerez que les icônes ne sont pas présentes dans les nouvelles notifications; au lieu de cela, davantage d'espace est prévu pour les étiquettes elles-mêmes dans l'espace restreint de l'ombre de notification. Cependant, les icônes d'action de notification sont toujours requises et continuent d'être utilisées sur les anciennes versions de Android et sur des appareils tels que Android Wear.

Si vous avez créé votre notification avec NotificationCompat.Builder et les styles standard disponibles, vous obtiendrez le nouveau look and feel par défaut sans aucun changement de code requis.

28
AymericM