6

Verzeihen Sie mir die korrekte Android-Termonologie zu kennen. Ich komme aus einem iOS-Hintergrund, also versuche ich zu lernen, wie man zwei Dinge in der Android-Welt richtig macht.Android Nachrichten - Entwicklung vs Verteilung

  1. Kontrolle "Badges" für Android
  2. "Push Notifications" über Distribution (Produktion) vs Development senden.

Glücklicherweise fand ich die Antwort auf # 1, die Status Bar Notifications dank this question zu bedienen ist.

Jetzt für # 2. Ich habe bereits ein GCM Setup und kann Benachrichtigungen an alle registrierten Geräte senden. Manchmal möchte ich jedoch Benachrichtigungen an die Telefone aller Benutzer senden können und manchmal auch nur an "Entwicklungs" -Geräte. Mit iOS wird dies durch Geräte aus, die aus dem App Store/Ad-Hoc-Umgebung heruntergeladen wurden (Distribution) und Geräte, die in einen Computer physisch angeschlossen worden, die die Quelle auf ihrem Gerät entspricht (Development). Gibt es etwas Ähnliches für Android?

Antwort

7

Es gibt keinen Unterschied zwischen der Entwicklung und Verteilung in Google Cloud Messaging. Alle Nachrichten werden von Ihrem Server an denselben GCM-Endpunkt gesendet. Wenn Sie zwischen Entwicklungsgeräten und Nicht-Entwicklungsgeräten unterscheiden möchten, müssen Sie sie in der Datenbank Ihres Servers verwalten (für jede Registrierungs-ID, die Sie auf Ihrem Server speichern, fügen Sie ein Flag hinzu, das angibt, ob es sich um ein Entwicklungsgerät handelt) .

EDIT:

Eigentlich ist es etwas, was Sie tun können, obwohl ich nicht sicher bin, es ist so eine gute Idee. Wenn sich die App bei GCM registriert, wird ein sender ID (also ein Google API project ID) bereitgestellt. Sie können zwei verschiedene project IDs für Entwicklungsfreigabe und Produktionsfreigabe verwenden. Die , die durch den Registrierungsprozess zurückgegeben werden, sind an die project ID gebunden. Wenn Sie jetzt eine GCM-Nachricht von Ihrem Server senden, senden Sie sie mit einem API key, der an eine project ID gebunden ist. Wenn Sie die API key verwenden, die an Ihre Entwicklung project ID gebunden ist, funktionieren nur , die an die project ID gebunden sind (d. H. Sie stammen von Geräten, die den Entwicklungsbuild haben). Das Senden von Nachrichten mit "production" führt zu MismatchSenderId Fehler (der APNS ähnelt in der Art, wie Sandbox-Gerät Token in der Produktionsumgebung ungültig sind und umgekehrt). Ich bin mir nicht sicher, ob das eine gute Idee ist, weil Sie sich nicht auf Fehler von Google für Ihre Logik verlassen wollen. Wenn Sie Nachrichten nur an eine Teilmenge Ihrer Clients senden möchten, sollten Sie diese Teilmenge in Ihrer Datenbank verwalten.

Verwandte Themen