Google Cloud Messaging im Projekt Wetteralarm

Google Cloud Messaging (GCM) ist ein Service, mit dem Push-Nachrichten gratis an Android Applikationen geschickt werden können. Puzzle hat GCM im Projekt Wetteralarm eingebaut.

Google Cloud Messaging löst das bestehende Framework C2DM (Android Cloud to Device Messaging) ab und bietet viele neue Funktionalitäten. GCM kümmert sich um Aspekte wie Queueing und die Zustellung der Nachrichten an die Android-Anwendung auf dem Zielgerät. GCM ist völlig kostenlos, egal wie gross die Messaging-Anforderungen sind und es gibt keine Quotas. Im Projekt Wetteralarm implementierte Puzzle das Server Backend mit GCM.

Implementation

Was wird nun aber benötigt, damit GCM benutzt werden kann?

– In der Google Api Console muss ein Projekt eröffnet werden. Beim Erstellen dieses Projekts erhält man eine Sender-ID. Die Sender-ID wird benötigt, um Messages zu schicken und zu erhalten. Der Server wie auch der Client müssen davon Kenntnis haben. Beispiel:

https://code.google.com/apis/console/#project:4815162342

– Danach kann in der Google API’s Console der GCM Service aktiviert werden:

GCM1

– Nun wird noch der Api Key benötigt, welcher im Menu Api Access erstellt werden kann.

Mit der Sender-ID, dem Api Key und der Registration-ID des Geräts ist es nun möglich, eine Push-Nachricht an ein Gerät zu schicken. Die Android Applikation, welche auf dem Gerät läuft, muss die Sender-ID auch kennen und muss beim ersten Anmelden eine Registration-ID von GCM anfordern. Folgende Grafik veranschaulicht diesen Prozess:

GCM2

 

Die Implementation des Versandes kann mit Hilfe der GCM Library gemacht werden. Diese Library befinden sich im Android SDK.

Ein Versand könnte dann folgendermassen aussehen:

import com.google.android.gcm.server.*;

Sender sender = new Sender(myApiKey);

Message message = new Message.Builder().build();

MulticastResult result = sender.send(message, devices, 5);

Message Results

GCM liefert gleich nach dem Versand der Message auch eine Rückmeldung (Result) zurück. Dank diesen Results können Massnahmen ergriffen werden. So werden zum Beispiel User gelöscht, welche den Dienst deinstalliert haben. Somit sind auch die Daten in der Datenbank immer up-to-date.

Migration C2DMGCM

Bei der Migration vom C2CM zu GCM muss berücksichtigt werden, dass nicht alle User auf einmal auf GCM wechseln. Die existierenden User besitzen eine Registration-ID, welche sie über C2DM erhalten haben. Diese funktioniert aber über GCM nicht. So muss zuerst jeder User migriert werden. Diese Migration geschieht in der Android Applikation, welche für den User eine neue Registration-ID über GCM anfordert. Eine gewisse Zeit lang werden also beide Services parallel laufen.

Fazit

Die Integration des Google Cloud Messaging Service verlief ohne grössere Probleme. Dank der Library ist der Sendevorgang relativ rasch implementiert. Die Registrierung geht sehr schnell und ist auch gleich aktiv. Somit kann der Versand ab diesen Zeitpunkt bereits getestet werden.

Kommentare sind geschlossen.