Normal Notification Builder n'affiche pas les notifications sur Android O.
Comment afficher une notification sur Android 8 Oreo?
Y a-t-il un nouveau morceau de code à ajouter pour afficher la notification sur Android O?
android
android-notifications
android-8.0-oreo
amorenouveau
la source
la source
Réponses:
Dans Android O, il est indispensable d'utiliser un canal avec votre générateur de notifications
ci-dessous est un exemple de code:
Ou avec la compatibilité Handling par:
ou si vous voulez un correctif simple, utilisez le code suivant:
Mises à jour: référence NotificationCompat.Builder
Ce constructeur est obsolète au niveau d'API 26.0.0, vous devez donc utiliser
donc pas besoin
setChannelId
avec le nouveau constructeur.Et vous devez utiliser la dernière version de la bibliothèque AppCompat actuellement 26.0.2
Source de la chaîne des développeurs Android sur Youtube
En outre, vous pouvez consulter les documents Android officiels
la source
NotificationCompat.Builder(Context, String)
constructeur? J'utilise (entre autres): -compileSdkVersion 26
-buildToolsVersion '26.0.2'
-compile 'com.android.support:appcompat-v7:26.0.0-beta2'
et pourtant il n'accepte toujours pas mon constructeur utilisant un contexte et une chaîne. Des idées?Ici, je poste une fonction de solution rapide avec gestion de l'intention
la source
En plus de cette réponse , vous devez créer le canal de notification avant de pouvoir l'utiliser.
Vous devez également utiliser des canaux uniquement si votre targetSdkVersion est de 26 ou plus.
Si vous utilisez NotificationCompat.Builder, vous devez également mettre à jour vers la version bêta de la bibliothèque de support: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0- beta2 (pour pouvoir appeler
setChannelId
au constructeur de compatibilité).Soyez prudent car cette mise à jour de la bibliothèque élève minSdkLevel à 14.
la source
la source
Si vous ne pouvez pas obtenir la notification push dans la version 26+ du SDK?
NotificationCompat.Builder notificationBuilder = nouveau NotificationCompat.Builder (contexte, channel_id)
-> Ici, vous obtiendrez une notification push en utilisant
channel_id
votre appareil qui est composé de 26+ version SDK.-> Parce que la
NotificationCompat.Builder(context)
méthode est obsolète, vous allez maintenant utiliser une version mise à jour qui a deux paramètres, l'un est context, l'autre est channel_id.->
NotificationCompat.Builder(context, channel_id)
méthode mise à jour. essayez-le.-> Dans la version 26+ du SDK de l'appareil, vous créerez channel_id à chaque fois.
la source
Utilisez cette classe pour la notification Android 8
la source
Essayez ce code:
la source
Application de démonstration de notification Android pour Android O ainsi que les versions d'API inférieures. Voici la meilleure application de démonstration sur GitHub-Demo 1 et GitHub-Demo 2 .
la source
Il s'agit d'un bogue dans la version 11.8.0 de l'API Firebase, donc si vous réduisez la version de l'API, vous ne serez pas confronté à ce problème.
la source
J'avais le même problème sur Oreo et j'ai découvert que si vous créez d'abord votre chaîne avec NotificationManager.IMPORTANCE_NONE, puis mettez-la à jour plus tard, la chaîne conservera le niveau d'importance d'origine.
Ceci est étayé par la documentation de formation Google Notification qui indique:
La suppression et la réinstallation de l'application vous permettront de réinitialiser les comportements de la chaîne.
Il est préférable d'éviter d'utiliser IMPORTANCE_NONE sauf si vous souhaitez supprimer les notifications pour ce canal, c'est-à-dire utiliser des notifications silencieuses.
la source
Voici comment vous procédez
Lisez le didacticiel complet sur => https://developer.android.com/training/notify-user/build-notification
la source
CHANNEL_ID
dans NotificationChannel et Notification.Builder doivent être identiques, essayez ce code:la source
Eh bien, dans mon cas, j'ai Android 8.1.0 et le numéro de modèle vivo1811 , et j'ai essayé toutes les solutions ci-dessus mais rien ne fonctionne.
Donc, enfin, j'ai écrit au support Firebase puis sur un débogage plus poussé, j'obtenais ceci: "Échec de la diffusion vers l'application arrêtée": assurez-vous que l'application n'a pas été arrêtée de force " .
Et c'était la réponse de l'équipe Firebase ->
Ici, OEM signifie fabricant d' équipement d'origine .
la source
Pour toute personne aux prises avec cela après avoir essayé les solutions ci-dessus, assurez-vous que l'ID de canal utilisé lors de la création du canal de notification est identique à l'ID de canal que vous avez défini dans le générateur de notification.
la source
la source
La méthode suivante affichera la notification , avec le gros texte et le gel activés (la notification ne sera pas supprimée même après les balayages de l'utilisateur). Nous avons besoin du service NotificationManager
Méthode pour supprimer les notifications
Lien source
la source
déjà obsolète pour la version supérieure ou égale à Android Oreo. Vous pouvez modifier l'implémentation en utilisant
la source
la source
Le morceau de code ci-dessous fonctionne pour moi dans l'Oreo, vous pouvez essayer ceci. j'espère que cela fonctionnera pour vous
private void sendNotification (Context ctx, String title, int notificationNumber, String message, String subtext, Intent intent) {
try {
la source
Dans Android Oreo, l'application de notification est effectuée à l'aide de canaux et de la classe NotificationHelper.Il doit avoir un identifiant et un nom de canal.
Vous devez d'abord créer une classe NotificationHelper
Créez un bouton dans le fichier xml d'activité, puis Dans l'activité principale
Puis lancez votre projet
la source
Vous devez créer un canal de notification pour le niveau d'API supérieur à 26 (oreo).
STRING_ID = string notification channelid est le même que dans Notification.Builder comme ceci
L'identifiant de canal dans la notification et dans la notification doit être le même. Le code entier est comme ça .. `
la source
Tout d'abord, si vous ne savez pas, depuis Android Oreo, c'est-à-dire le niveau d'API 26, il est obligatoire que les notifications soient renvoyées avec un canal.
Dans ce cas, de nombreux didacticiels peuvent vous dérouter car ils montrent des exemples différents pour la notification au-dessus de oreo et en dessous.
Voici donc un code commun qui fonctionne à la fois au-dessus et au-dessous de oreo:
Didacticiel vidéo: VIDEO YOUTUBE
Si vous souhaitez télécharger cette démo: Lien GitHub
la source
la source