Normal Notification Builder zeigt keine Benachrichtigungen unter Android O an.
Wie kann ich eine Benachrichtigung auf Android 8 Oreo anzeigen?
Gibt es einen neuen Code zum Anzeigen der Benachrichtigung auf Android O?
Normal Notification Builder zeigt keine Benachrichtigungen unter Android O an.
Wie kann ich eine Benachrichtigung auf Android 8 Oreo anzeigen?
Gibt es einen neuen Code zum Anzeigen der Benachrichtigung auf Android O?
Antworten:
In Android O ist es ein Muss, einen Kanal mit Ihrem Notification Builder zu verwenden
Unten ist ein Beispielcode:
Oder mit Handhabungskompatibilität durch:
oder wenn Sie eine einfache Lösung wünschen, verwenden Sie den folgenden Code:
Updates: NotificationCompat.Builder-Referenz
Dieser Konstruktor war in API-Version 26.0.0 veraltet, daher sollten Sie ihn verwenden
Also keine Notwendigkeit
setChannelId
mit dem neuen Konstruktor.Und Sie sollten die neueste AppCompat-Bibliothek verwenden, die derzeit 26.0.2 ist
Quelle aus Android Developers Channel auf Youtube
Sie können auch die offiziellen Android-Dokumente überprüfen
quelle
NotificationCompat.Builder(Context, String)
Konstruktor zu erhalten? Ich verwende (unter anderem): -compileSdkVersion 26
-buildToolsVersion '26.0.2'
-compile 'com.android.support:appcompat-v7:26.0.0-beta2'
und dennoch akzeptiert es meinen Konstruktor nicht, einen Kontext und eine Zeichenfolge zu verwenden. Irgendwelche Ideen?Hier poste ich eine schnelle Lösungsfunktion mit Absichtsbehandlung
quelle
Zusätzlich zu dieser Antwort müssen Sie den Benachrichtigungskanal erstellen, bevor er verwendet werden kann.
Außerdem müssen Sie Kanäle nur verwenden, wenn Ihre targetSdkVersion 26 oder höher ist.
Wenn Sie NotificationCompat.Builder verwenden, müssen Sie auch auf die Beta-Version der Support-Bibliothek aktualisieren: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0- Beta2 (um
setChannelId
den Compat Builder aufrufen zu können).Seien Sie vorsichtig, da dieses Bibliotheksupdate minSdkLevel auf 14 erhöht.
quelle
quelle
Wenn Sie die Push-Benachrichtigung in der SDK-Version 26+ nicht erhalten können?
NotificationCompat.Builder notificationBuilder = neuer NotificationCompat.Builder (Kontext, Kanal-ID)
-> Hier erhalten Sie eine Push-Benachrichtigung mit
channel_id
auf Ihrem Gerät eine SDK-Version ab 26 verwenden.-> Weil die
NotificationCompat.Builder(context)
Methode jetzt veraltet ist, verwenden Sie eine aktualisierte Version mit zwei Parametern, einer ist Kontext, der andere ist channel_id.->
NotificationCompat.Builder(context, channel_id)
aktualisierte Methode. Versuch es.-> In der SDK-Version 26+ des Geräts erstellen Sie jedes Mal channel_id.
quelle
Verwenden Sie diese Klasse für die Android 8-Benachrichtigung
quelle
Versuchen Sie diesen Code:
quelle
Android Notification Demo App für Android O sowie niedrigere API-Versionen. Hier ist die beste Demo-App für GitHub-Demo 1 und GitHub-Demo 2 .
quelle
Dies ist ein Fehler in der Firebase-API-Version 11.8.0. Wenn Sie also die API-Version reduzieren, tritt dieses Problem nicht auf.
quelle
Ich hatte das gleiche Problem mit Oreo und stellte fest, dass der Kanal die ursprüngliche Wichtigkeitsstufe beibehält, wenn Sie Ihren Kanal zuerst mit NotificationManager.IMPORTANCE_NONE erstellen und später aktualisieren.
Dies wird durch die Google Notification-Schulungsdokumentation gesichert, in der Folgendes angegeben ist:
Durch Entfernen und erneutes Installieren der App können Sie das Kanalverhalten zurücksetzen.
Vermeiden Sie am besten die Verwendung von IMPORTANCE_NONE, es sei denn, Sie möchten die Benachrichtigungen für diesen Kanal unterdrücken, dh stille Benachrichtigungen verwenden.
quelle
So machen Sie es
Lesen Sie das vollständige Tutorial unter => https://developer.android.com/training/notify-user/build-notification
quelle
CHANNEL_ID
Versuchen Sie diesen Code in NotificationChannel und Notification.Builder identisch:quelle
Nun, in meinem Fall habe ich Android 8.1.0 und die Modellnummer vivo1811 und ich habe es mit allen oben genannten Lösungen versucht, aber nichts funktioniert.
Endlich habe ich an den Firebase-Support geschrieben. Beim weiteren Debuggen wurde Folgendes angezeigt: "Übertragung an gestoppte App fehlgeschlagen": Stellen Sie sicher, dass die App nicht zwangsweise gestoppt wurde. .
Und das war die Antwort des Firebase-Teams ->
Hier steht OEM für Original Equipment Manufacturer .
quelle
Stellen Sie für alle, die nach dem Ausprobieren der oben genannten Lösungen damit zu kämpfen haben, sicher, dass die beim Erstellen des Benachrichtigungskanals verwendete Kanal-ID mit der im Benachrichtigungs-Builder festgelegten Kanal-ID identisch ist .
quelle
quelle
Die folgende Methode zeigt die Benachrichtigung an , wobei großer Text und Einfrieren aktiviert sind (die Benachrichtigung wird auch nach dem Wischen durch den Benutzer nicht entfernt). Wir benötigen den NotificationManager-Service
Methode zum Entfernen von Benachrichtigungen
Quelle Link -
quelle
bereits veraltet für Version größer oder gleich Android Oreo. Sie können die Implementierung in using ändern
quelle
quelle
Der folgende Code funktioniert für mich im Oreo, Sie können dies versuchen. hoffe es wird für dich funktionieren
private void sendNotification (Kontext ctx, String-Titel, int-Benachrichtigungsnummer, String-Nachricht, String-Subtext, Intent-Absicht) {
try {
quelle
In Android Oreo wird die Benachrichtigungs-App mithilfe von Kanälen und der NotificationHelper-Klasse ausgeführt. Sie sollte eine Kanal-ID und einen Kanalnamen haben.
Zuerst müssen Sie eine NotificationHelper-Klasse erstellen
Erstellen Sie eine Schaltfläche in der Aktivitäts-XML-Datei und dann In der Hauptaktivität
Führen Sie dann Ihr Projekt aus
quelle
Sie müssen einen Benachrichtigungskanal für API-Level über 26 (oreo) erstellen.
STRING_ID = String-Benachrichtigungskanal-ID ist dieselbe wie in Notification.Builder wie folgt
Die Kanal-ID in der Benachrichtigung und in der Benachrichtigung sollte gleich sein. Der gesamte Code ist wie folgt. `
quelle
quelle