Skip to content

GCM: Aktive Benachrichtigung am Android Gerät

Apple hat schon seit je her einen Push Notification Service für die iOS Geräte. Hierbei kann sich ein Service bei Apple anmelden und Nachrichten auf die für diesen Service registrierten Clients pushen. Der Client kann also "schlafen" und wird aktiv informiert, wenn etwas neues passiert. Da iOS Clients keine Hintergrund Tasks ausführen können / dürfen, ist dieser Service sogar ein sehr notwendiger, ansonsten hätte ein Client keine Chance, über Neuigkeiten an einem Service informiert zu werden.

Android Clients haben an dieser Stelle mehr Möglichkeiten "von sich aus". Sie können ohne weiteres Hintergrund Tasks starten und angeben, zu welcher Uhrzeit und in welcher Frequenz diese ausgeführt werden sollen. Android Clients können also selbst nachfragen, ob sich etwas an einem Service getan hat. Ein Push Service war für Android Devices bisher also nicht notwendig. Sie benutzen Pull Requests, um auf dem laufenden zu bleiben.

Push Services haben allerdings in vielen Bereichen einen großen Vorteil: Man muss sich nur einen Messaging Service vorstellen wie ein Chat. Würde der Client hier in einer vorgegebenen Frequenz neues abholen, würde das zum einen heißen, dass er unnötiger Weise immer wieder nachfragt und zum anderen können Neuigkeiten eben nicht sofort sondern nur in der Frequenz der Abfrage eintreffen. Chat artige Programme wie Whatsapp oder auch das IMAP Mail Protokoll müssen somit einen Socket oben halten, um mit einem eigenen Protokoll einen zeitnahen Update zu haben. Der Service hat über diesen Socket also einen "eigenen Push".

Seit kurzem bietet nun aber auch Google einen Push Service für die Android Geräte an, der dem von Apple sehr ähnelt, allerdings technisch (IMHO) etwas ausgereifter ist: Google Cloud Messaging. Auch hier gibt es einen zentralen Google Server, über den sich Services mit ihren Clients verbinden und aktiv an diese Nachrichten verschicken können. Technisch besser ist dieser Service vor allem im Detail:

  • Push Messages überschreiben sich nicht. Wenn man in den Apple Service 2 Pushes an einen Client verschickt, der noch nicht empfangsbereit ist, dann überschreibt die 2. die 1. Message. Bei Google ist das per Default nicht der Fall (wenn in der Abwesenheit des Clients 10 Nachrichten zugestellt wurden, dann bekommt er alle 10), allerdings kann man definieren, dass man mit einer Nachricht eine andere überschreiben will.
  • Pushnotification auf iOS sind immer mit einem Dialog verbunden, der von iOS selbst zur Verfügung gestellt wird, mit einem OK öffnet man dann die App (den Client), der dann Mögichkeiten hat, den Push zu identifizieren und entsprechend zu reagieren. Dies war ein Problem, als iOS noch nicht die Notification Bar von Android kopiert hatte, denn man sah so nur die letzte Push Nachricht, die eingetroffen war. Inzwischen kann auch iOS Pushnachrichten von unterschiedlichen Services "sammeln".
    Auf Android ist man sehr frei, was man eigentlich mit den Pushes machen möchte. Die Nachricht wird nicht direkt vom Betriebssystem abgearbeitet sondern von der App selber. Somit sind hier nahezu alle Möglichkeiten vorhanden, von einer stillen Reaktion (die einfach nur beim Service neue Daten abholt) bis zu ausgeklügelten eigenen Dialogen.

Ich habe bereits ein wenig mit dem GCM experimentiert. Er reagiert extrem schnell und bei meinen Tests sehr zuverlässig. Kein Vergleich mit dem Ärger, den ich immer wieder mit den Apple Pushes hatte (verloren gehende Pushes vor allem). War bisher ein Pushservice für Android Clients noch sehr knifflig zu implementieren, ist das nun mit GCM sehr einfach geworden, wenn man sich auf die Infrastruktur von Google verlassen möchte. Man darf nun also gespannt sein, welche Services in Zukunft auf GCM aufsetzen werden. Mir würden spontan einige Kandidaten einfallen, an einem werde ich selber wohl mal den GCM ausprobieren, doch dazu später mehr. ;-)

Trackbacks

Grischa

Grischa am : Real Time Web für Server

"Real Time Web für Server" vollständig lesen
Das ProblemSeit dem ich für mein Blog die Wordpress App benutze, um über neue Kommentare informiert zu werden, nervt mich ein Problem: Die App muss regelmäßig abfragen, ob etwas neues im Blog vorhanden ist. Will man zeitnah informiert

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Dieses Blog erlaubt Dir, Audio Kommentare über audioboo.fm hinzuzufügen. Erstelle einen neuen Boo und gib hier den Link auf die Seite Deines Boos ein.
record
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
(Bedingung: 1 Kommentare geschrieben)
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
tweetbackcheck