Ich schreibe eine Anwendung, die mit Smooch und Carnival integriert. Diese beiden Bibliotheken empfangen GCM-Push-Nachrichten unter Verwendung des Standardansatzes zum Definieren eines GCM-Intent-Dienstes zum Empfangen von Nachrichten.Verwendung von 2 oder mehr GCM Intent Services in einer Anwendung
Wenn ich nur Smooch benutze, funktioniert alles super. Wenn ich nur Karneval benutze, funktioniert alles super. Das Problem tritt auf, wenn ich versuche, beides zu verwenden. Was ich gefunden habe, ist, dass der GCM-Empfänger einfach den ersten Dienst startet, der in dem Manifest aufgeführt ist, das die Absicht com.google.android.c2dm.intent.RECEIVE
definiert.
Tatsächlich fand ich, dass die Reihenfolge der Bibliotheken in meinem build.gradle
betrifft, in welcher Reihenfolge ihre Manifeste in das Manifest der Anwendung zusammengeführt werden. Also, wenn ich zuerst Knutschfleck mache, funktioniert es (aber Carnival bekommt nichts). Und wenn ich Karneval an erste Stelle setze, funktioniert es (aber Smooch bekommt nie etwas).
Wie kann ich mehrere GCM-Intent-Services verarbeiten, wenn ich keinen von beiden kontrolliere? Wie sollten Anwendungen im Allgemeinen mehrere GCM-Intent-Services definieren und verwalten?
Danke, es ist großartig zu sehen, dass Smooch die Möglichkeit dazu bietet. Leider bin ich mir sicher Karneval nicht. Allerdings sollte ich in der Lage sein, den gleichen Ansatz zu verwenden und 'startWakefulService' zweimal mit jedem Dienst aufzurufen und sicherzustellen, dass mein Relaying Intent-Dienst zuerst im Manifest aufgeführt wird. Werde das versuchen und hier updaten. –
Das funktioniert. Ich muss die GCM-Registrierung nicht deaktivieren und mache meine eigene, da ich die gleiche Absender-ID und den gleichen API-Schlüssel für beide Dienste verwende. Außerdem kann ich das smoochNotification-Flag verwenden, um die Nachricht an den richtigen Ort zu senden und nicht einfach blind an beide zu senden. Also, alles gut ... Danke! –