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:
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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf docs: https://firebase.google.com/docs/cloud-messaging/http-server-ref
Versuchen,
android_channel_id
im json-Sie sind über posten und fcm. Ich habe keine Ahnung, warum manifestieren Wert wird nicht für Sie arbeiten. Versuchen Sie einfach die Kanal hinzufügen, um Ihre Anfrage, sollten Sie das gleiche Effekt wie von der FB-Konsole.Edit: ich habe gerade realisiert, Sie fordern das Amazon client-integration. Vielleicht sind Sie in der Lage zu bauen json-Anfrage manuell dann (ich weiß nicht viel über Amazon-services, sorry).
android_channel_id
param via Amazon SNS-Konsole (nur durch das hinzufügen zu JSON payload). Das ist sogar besser als die Standard-notification-Kanal in AndroidManifest.xml also ich bin nicht mehr die Mühe gemacht, warum es nicht funktioniert. 🙂wie kann ich erstellen Sie android_channel_id
Der zitierte link verweist auf eine Sektion Legacy-HTTP-Server-Protokoll, aber der wichtigste Abschnitt Protokoll macht keine Erwähnung von android_channel_id
darf ich Fragen, was genau Sie Hinzugefügt, um Ihre json-Datei? Dank
die
android_channel_id
param Zeichenfolge mit dem id-Wert ist spezifisch für meine Anwendung.InformationsquelleAutor user1209216