In näherer Zukunft werde ich in Zusammenarbeit mit Tutorials-Raspberrypi.de ein paar Projekte veröffentlichen, in denen wir beide versuchen Projekte mit dem Raspberry Pi auch auf dem Smartphone verfügbar zu machen.
Essenziell für die Zusammenarbeit von Raspberry Pi und Android ist eine Kommunikation über das Internet.
Ob diese Kommunikation nun über ein lokales Netzwerk oder eine öffentliche Internetverbindung ist hierbei vorerst irrelevant.
Was uns als Entwickler für Android Apps allerdings die Arbeit etwas erleichtern soll ist die Kommunikation über den Google Cloud Messaging Dienst (kurz GCM).
Dieser GCM Dienst läuft über das Internet und benachrichtigt alle angemeldeten Android Smartphones über eine Nachricht und ein Thema, welches von unserem Raspberry Pi aus gesendet wurde.
Damit Google auch weiß, um welche Android App es sich handelt, die auf allen Android Geräten benachrichtigt werden soll, benötigen wir einen sogenannten API-Key.
Projekt erstellen:
Um unseren für das Projekt den spezifischen API-Key zu erhalten, müssen wir uns mit unserem Google Account auf https://console.developers.google.com/home/ anmelden.
Nun müssen wir ein Projekt erstellen. Dazu klicken wir oben links auf den kleinen Pfeil und wählen “Neues Projekt erstellen”.
Wir geben dem Projekt nun einen passenden Namen.
Nach kurzer Zeit ist unser Projekt erstellt.
GCM aktivieren:
Standardgemäß ist der GCM Dienst nicht aktiviert, wenn wir ein neues Projekt erstellen.
Wir könnten den GCM Dienst nun manuell aktivieren, den API-Key erstellen lassen, uns für unsere spätere Android App einen Package Namen (dazu später mehr) ausdenken und eine später ebenfalls für die Android App benötigte Konfigurationsdatei erstellen.
Das ist doch viel zu umständlich.
Google bietet uns hier einen einfacheren Weg an.
Über den Link: https://developers.google.com/mobile/add?platform=android&cntapi=gcm ist es uns möglich all diese Dinge mit wenigen Klicks zu erledigen.
Wir klicken auf den kleinen Pfeil neben “App Name” und wählen unser eben erstelltes Projekt aus (hier “Testprojekt”).
Nun müssen wir einen Android Package Namen eingeben. Dieser muss zur Android App passen und mit dessen Package Namen übereinstimmen.
Falls ihr noch nie eine Android App erstellt habt gibt es noch eine kurze Erklärung:
Der Package Name einer App ist gleich bedeutend mit einem Installationspfad unter Windows. Das heißt, dass zwei verschiedene Apps zwar den selben Namen haben dürfen, aber niemals den selben Package Namen, da nicht zwei Apps unter dem selben Pfad gespeichert sein dürfen.
Ein Package Name besteht meistens aus 3-4 Teilen, die jeweils mit einem Punkt getrennt werden.
[Ländercode (z.B. de)] . [Entwicklername] . [App Name]
Ein Beispiel: de.staticfloat.testprojekt
Ein Package Name darf dabei keine Großbuchstaben, Bindestriche, Leerzeichen, Umlaute oder Sonderzeichen enthalten.
Klickt anschließend auf “Choose and configure services”.
Hier wählt ihr Cloud Messaging und “Enable Google Cloud Messaging” aus.
Nach wenigen Sekunden sollte euch eine Erfolgsmeldung angezeigt werden.
Speichert euch unbedingt den nun angezeigten Server API-Key unter.
Ihr werden diesen API-Key innerhalb eures Raspberry Pi Projektes benötigen.
Wie und wo ihr ihn einfügen müsst wird euch auf Tutorials-Raspberrypi.de erklärt.
Weiter geht es mit “Generate and configure files”.
Zu guter letzt wird uns angeboten, dass wir eine JSON-Datei herunterladen können.
Diese ladet ihr bitte herunter und speichert sie an einem sicheren Ort ab, wir werden sie für unsere spätere Android App noch benötigen.
Hallo Melvin, vielen Dank für das Tutorial. Ich habe in AndroidStudio ein Projekt mit PackageNamen gestartet bekommen. Leider kann ich GCM nicht aktivieren. Die https://console.developers.google.com/home/ sieht inzwischen ganz anders aus,ich finde hier nicht mal mehr eine Stelle, wo ich den PackageNamen eingeben kann. Der Link https://developers.google.com/mobile/add?platform=android&cntapi=gcm führt inzwischen zu einer Crash-Analyse Seite... aber so weit bin ich ja noch gar nicht ;-)... Gruß Hermann
Hallo Hermann, Ich werde den Artikel die Tage noch einmal auf den neuesten Stand bringen. Innerhalb von einem Jahr tut sich leider sehr viel. Gruß
Ich wäre dann auch an einer Aktualisierung interessiert, denn derzeit führt das Tutorial zu keinem Ziel. Anstelle der Firebase-Beschreibung würde ich auch lieber den "Das ist doch viel zu umständlich" -Weg gehen und Key usw. händig anlegen. (Denn beim Klick auf die Firebase AGB's wird einem ja schwindelig und Hinweise bei der Auswahl der Standorte "...sind derzeit noch nicht verknüpft..." "... Traffic wird in Rechnung gestellt... kann die Latenz beeinflussen ..." sprechen mich jetzt auch nicht unbedingt persönlich an, bei einem reinen Hobby-Experiment ohne finanziellen Hintergrund.