Apps für Android Wear Grundkurs

Geräte mit GoogleApiClient verbinden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Uhr und Phone können sich auch einmal an verschiedenen Orten befinden. Wenn Sie sich dann wieder begegnen, möchten Daten ausgetauscht und Informationen dargestellt werden, und dazu müssen sich beide Geräte wieder miteinander bekannt machen.

Transkript

Sie können Benachrichtigungen von Ihrer Smartphone-App zur Smartwatch senden, die dann dort aufpoppen und die der Nutzer lesen und löschen kann. Dafür müssen Sie keine spezielle App für die Uhr schreiben, das funktioniert alles automatisch. Wenn Sie eine Nachricht von der Uhr zum Phone senden wollen, müssen Sie allerdings etwas mehr Aufwand treiben. Sie müssen nicht nur den Code fürs Senden schreiben, wie bei den normalen Benachrichtigungen, sondern auch den fürs Empfangen. Um Senden und Empfangen zu können, müssen Sie zuerst eine Datenverbindung von der Uhr zum Phone aufbauen. Wie das geht, zeige ich Ihnen in diesem Video. Ich habe hier als Smartphone ein echtes Nexus 5x und für die Uhr nehme ich einen Emulator, und die beiden sind auch schon gekoppelt. Sie sehen hier in der Wear-App links oben steht Verbunden, und um das zu testen, schicke ich eine Testnachricht. Das sieht dann so aus. Es funktioniert. Beide Geräte sind tatsächlich gekoppelt. Ich bin hier in meinem Projekt ConnectDevices. Das besteht aus zwei Modulen, dem Modul Mobile für das Smartphone und Wear für die Smartwatch. Für den Nachrichtenaustausch zwischen den beiden Geräten gibt es das sogenannte Google Messaging API, das ich nun verwenden werde. Ich öffne jetzt im Wear-Modul die MainActivity-Klasse. Hier sind schon ein paar Dinge deklariert, durch die ich kurz durchgehen möchte. Das Smartphone, mit dem ich dann reden möchte, wird durch ein Node repräsentiert. Für den Aufbau der Verbindung, das Senden von Nachrichten, gibt es eine Klasse namens Google API Client. Damit kann ich alle Arten von Google Play-Diensten nutzen, zum Beispiel auch Google Maps. Außerdem sind hier noch zwei Konstanten deklariert. Wearable_Main benutze ich später fürs Login als Tag. Wear_Path wird später für den Nachrichtenaustausch zwischen den beiden Geräten benötigt. So. Ich möchte nun mit dem Google API Client arbeiten. Also brauche ich zuerst eine Instanz davon. Das mache ich hier in der OnCreate-Methode Die hole ich mir mit new. Ich verwende dafür einen Builder, den Google API Client Builder. Als Kontext gebe ich this an. Zuerst muss ich dem Builder sagen, welches API ich nutzen möchte, Das mache ich mit der Methode addApi. Ich möchte das Wearable API haben. Das gebe ich über diese Konstante an. Wenn ich später mit dem externen Gerät kommunizieren möchte, werde ich über Callbacks über den Stand der Dinge informiert. Zum Anmelden dieser Callbacks gibt es die Methode addConnectionCallbacks. Hier schreibe ich this rein. Das bedeutet, meine Activity selbst wird die Callbacks zur Verfügung stellen. Wenn ich mich dafür interessiere, ob etwas schiefgegangen ist, kann ich dafür einen zusätzlichen Listener anmelden, nämlich mit addOnConnectionFailedListener. Auch hier gebe ich wieder this an, weil auch diese Ereignisse von meiner Activity verarbeitet werden sollen. Schließlich rufe ich noch den Build auf. Damit bin ich erstmal fertig. Damit ich hier this übergeben kann, muss meine Activity ein bestimmtes Interface implementieren, nämlich ConnectionCallbacks, und da kann ich mir von AndroidStudio jetzt einige Arbeit abnehmen lassen. Dazu gehe ich hier hinter this. Dann drücke ich ALT-Enter. Beim zweiten Punkt kann ich schon sagen, dass meine Klasse dieses Interface implementieren soll. Ich drücke Enter und kann jetzt die Methoden auswählen, die ich implementiert haben will. Da bekomme ich dann leere Methoden generiert. Das sieht dann so aus. Hier oben steht jetzt implements ConnectionCallbacks. Hier unten sind die beiden Methoden. Das Gleiche mache ich jetzt bei addOnConnectionFailedListener. Auch wieder direkt dahinter. ALT-Enter, zweiten Punkt auswählen. Diesmal muss nur eine Methode implementiert werden. Ich drücke auf OK. Dann habe ich hier die Methodendeklaration. Das sind also die Callback-Methoden, über die meine Activity über die entsprechende Ereignisse informiert wird. Die Verbindung zum externen Gerät soll hergestellt werden, sobald meine Activity geöffnet wird. Deswegen schreibe ich das also in die OnStart-Methode der Activity rein. Für das Verbinden bietet mir der Google API Client die passende Methode. Die heißt Connect. Analog möchte ich nun, wenn meine Activity gestoppt wird, die Verbindung trennen. Das sieht genau so aus. Ich überschreibe die OnStop-Methode und nehme hier wieder den Client und rufe Disconnect auf. So weit, so einfach. Nun können sich aber im Umfeld meiner Watch mehrere Geräte befinden. Nach dem Aufruf von Connect werde ich natürlich nur mit einem dieser Geräte verbunden sein. Ich möchte natürlich mit dem Smartphone reden, mit dem diese Uhr gekoppelt wurde. Diese Methode OnConnected wird ja direkt aufgerufen, nachdem eine Verbindung hergestellt wurde. Das ist also die beste Stelle, um das zu machen. Es gibt für diesen Zweck eine Klasse namens Wearable.NodeApi mit einer statischen Methode getConnectedNodes. Hier muss ich jetzt meinen Google API Client angeben. Jetzt muss ich einen Callback angeben, mit dem mir dann die Liste der verbundenen Geräte übergeben werden kann. Dafür gibt es die Methode setResultCallback. Das Callback-Objekt, das ich übergeben möchte, erzeuge ich mit new ResultCallback Jetzt wird hier fleißig Code generiert. Der ResultCallback ist visiert auf getConnectedNodesResult. Also das Ergebnis mit der Liste der verbundenen Geräte. Die eigentliche Methode, die dann aufgerufen wird, heißt OnResult und bekommt hier ein getConnectedNodesResult übergeben. Darin sind dann die eigentlichen Geräte enthalten. Der Name hier ist mir ein bisschen zu lang. Ich nenne das einfach nur Nodes. Jetzt kann ich durch die Liste durchiterieren um herauszufinden, welcher mein Node ist. Das mache ich mit einer forEach-Schleife. Das einzelne Element ist vom Typ Node. Ich nenne es also Node. Und es stammt aus nodes.getNodes. Jetzt räume ich mal kurz auf. So. Um herauszufinden, mit welchem Node ich verbunden bin, gibt es im Node eine Methode namens isNearby. Bevor ich die aufrufen kann, muss ich aber checken, ob mein Node nicht vielleicht Null ist. Wenn das der Fall ist, also wenn er nicht Null ist, kann ich isNearby aufrufen. Nur bei einem der Nodes wird es True ergeben. Das ist dann der, mit dem ich tatsächlich verbunden bin. Bei allen anderen kommt hier False zurück. Wenn ich das Gerät gefunden habe, möchte ich mir das merken. Dafür habe ich mir ja hier oben schon eine Variable deklariert, nämlich hier im Node vom Typ Node. Die setze ich aufs entsprechende ... auf die entsprechende Referenz. So. Zur Kontrolle, ob das geklappt hat, gebe ich eine Logmeldung aus. Dafür nehme ich das hier undefinierte Tag. Also ... Wearable_Main. Und als Meldung Verbunden mit Beim Node gibt es eine Methode namens getDisplayName, die rufe ich jetzt auf und kriege einen schönen klaren Tag. Eigentlich muss das hier mNode heißen. Wenn ich durch die ganze Liste durch bin, und mein Gerät trotzdem nicht gefunden habe, möchte ich auch eine entsprechende Meldung ausgeben. Das mache ich hier dahinter. In diesem Fal ist mNode immer noch Null. Dann möchte ich diese Meldung hier ausgeben: Eben nicht Verbunden mit, sondern Nicht verbunden. So. Anführungszeichen. OK. So. In der OnCreate-Methode nutze ich den Google API Client, um mich als Interessent für die diversen Ereignisse anzumelden. In der OnStart-Methode verbinde ich mich, in OnStop möchte ich die Verbindung wieder trennen. Wenn verbunden wurde, dann versuche ich hier herauszufinden, welches ist mein Gerät? Ich gebe die entsprechene Meldung aus. Wenn ich keins gefunden habe, dann die Meldung Keins gefunden. Jetzt führe ich die App aus. Achten Sie darauf, dass Sie hier oben die richtige Konfiguration nehmen, nämlich Wear. Dann drücke ich auf den Play-Button. So. Hier nehme ich meinen Emulator für die Uhr. Ich drücke auf OK. Nach einem kurzen Moment ist die App auch schon auf dem Emulator angekommen. Mein Code wird ausgeführt. Es wird eine Liste aller Geräte durchgegangen, das richtige Gerät wird gesucht, und die entsprechende Meldung taucht im Logfile auf. Wie wir hier unten sehen können: Verbunden mit Nexus 5x. Das ist mein Smartphone. Falls das nicht klappen sollte, dann schauen Sie im Emulator nach, ob Sie verbunden sind. Wir haben hier die AndroidWear-Anwendung, hier sollte Verbunden stehen. Wenn es nicht klappt, bauen Sie die Verbindung nochmal ab und wieder auf, dann sollte es auch funktionieren. So. Jetzt ist unsere Anwendung mit dem Smartphone verbunden. Sie können beginnen, Nachrichten zu senden.

Apps für Android Wear Grundkurs

Erstellen Sie Anwendungen für das Internet der Dinge mit Android Wear.

2 Std. 39 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:19.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!