Wie Sie angeben, Android notification-Kanal für FCM-push-Nachrichten in Android 8

Unsere app hat jetzt targetSdkVersion 26 (8 Android) und die app nutzt FCM push-Benachrichtigungen.

Als FCM-Dokumentation schreibt ich aktualisiert die FCM-client-Bibliothek auf version 11.2.0:

dependencies {
     compile 'com.google.firebase:firebase-messaging:11.2.0'
}

Mit diesem FCM-client-Bibliothek aktualisieren Sie die FCM-Benachrichtigungen begann zu erscheinen auf Android-Geräte. Gut, aber wenn app ist im hintergrund-es ist system, die Prozesse der FCM-Nachricht, so verwendet er die Standard-Android notification-Kanal namens "Verschiedenes", das ist nicht das, was wir wollen (wir haben eine andere Benachrichtigungs-Kanäle und "Sonstiges" klingt verwirrend in dieser Liste).

Als FCM-Dokumentation sagt, es ist ein Weg, um anzugeben, Standard-notification-Kanal für FCM-Nachrichten:

(Optional) Innerhalb der Komponente Metadaten-Elemente-set
ein Standard-Symbol, Farbe und notification-Kanal (neu in Android O)
- Benachrichtigungen. Android nutzt diese Werte, wenn eingehende Nachrichten tun
nicht explizit festlegen, Symbol, Farbe oder notification_channel.

Allerdings gibt es keine code-Beispiel gezeigt (Proben werden nur angezeigt, für Symbol und Farbe). So ich habe gerade durch googeln eine Probe in FB Cloud-Messaging-Quickstart auf github:

<meta-data
    android:name="com.google.firebase.messaging.default_notification_channel"
    android:value="@string/default_notification_channel_id"/>

Aber es funktioniert nicht - FCM-Meldungen immer noch erscheinen, in den "Sonstiges" - Kanal. Und ich sehe in den logs:

W/FirebaseMessaging: Fehlende Standard Notification-Kanal-Metadaten in
AndroidManifest. Default-Wert verwendet.

Natürlich, ich habe versucht, die app neu installieren. Immer noch das Problem.

Gut, im Idealfall sollte es eine Möglichkeit zu geben notification channel(s) auf back-end auf den Zeitpunkt der Absendung der Nachrichten. Der FCM dev Konsole, die es erlaubt zu testen, senden, nun hat eine solche option in der Benutzeroberfläche:

Wie Sie angeben, Android notification-Kanal für FCM-push-Nachrichten in Android 8

Und es funktioniert gut. Aber unsere back-end verwendet die Java-API von Amazon SNS und ich habe keine Ahnung, ob das API erlaubt es, um anzugeben, Android notification-Kanal beim senden einer Nachricht (weil es ' a neue Android-feature, und Amazon braucht Zeit sich zu verabschieden). So setzen eines Standard-notification-Kanal in AndroidManifest.xml wäre ein Gültiger workaround für jetzt, aber es funktioniert nicht.

Hast du das string-Wert default_notification_channel_id ?
Natürlich, habe ich.
In Sie Beitrag, den Sie schreiben ".default_notification_channel", aber es sollte "..default_notification_channel*_id*"
FYI, Antwort zu einer ähnlichen Frage.

InformationsquelleAutor Vit Khudenko | 2017-08-29

Schreibe einen Kommentar