Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Apps für Android Wear Grundkurs

Nachrichten von der Smartwatch senden

Testen Sie unsere 2018 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
in diesem Video erfahren Sie, wie Sie mit Ihrer Smartwatch-App Nachrichten an das Smartphone senden können.

Transkript

Ich habe eine Smartwatch und ein Smartphone, die miteinander gekoppelt sind. In meiner App, die auf der Watch läuft, habe ich eine Verbindung zum Phone aufgebaut. In diesem Video zeige ich Ihnen, wie Sie aus Ihrer Smartwatch-App heraus eine Nachricht an das Smartphone senden können. Ich bin hier in einem Projekt namens SendMessage. So sieht meine Wear-App aus. Ich habe vier Buttons, auf die ich klicken kann, aber momentan passiert beim Klicken noch nichts. Das erste, was ich jetzt machen werde, ist, diese Klicks zu behandeln. Dafür sind die Buttons mit einem entsprechenden Handler verbunden, und zwar in der Layout-Datei. Hier habe ich die Button-Deklaration und hier das Attribut OnClick. Da steht im Methodennamen drin: ButtonClickHandler. Das ist bei allen Buttons der gleiche. Hier habe ich einen Button für London, einen für Hong Kong, Paris und San Francisco. Es steht jedes Mal bei OnClick der gleiche Methodenname drin. Diese Methode befindet sich jetzt in der Klasse MainActivity hier und bekommt eine View als Parameter übergeben. Das ist unser Button, der ausgelöst wurde. Werfen wir einen Blick auf die dazugehörige Smartphone-App. Ich habe hier eine Liste von vier Städten. Ich kann auf eine der Städte drauftippen und sehe dann die Detailinformationen zum Hotel in dieser entsprechenden Stadt. Gehe ich auf ein anderes Hotel, bekomme ich die Informationen zu dieser Stadt. Wenn Sie sich das eine Weile anschauen, werden Sie feststellen, dass die Städtenamen in beiden Apps die gleichen sind. Wir haben hier London, Hong Kong, San Francisco und Paris und hier London, Hong Kong, San Francisco und Paris. Wie Sie gerade gesehen haben, sind die Hotel- beziehungsweise die Städtenamen für die Smartwatch-App hier in der Layout-Datei zugeordnet oder genauer: Sie stammen aus der entsprechenden strings.xml, die Sie hier sehen. Für die Smartphone-App kommen die Daten aus einer Klasse namens DataProvider. Bei der Klasse habe ich eine Abkürzung gewählt, damit ich nicht extra eine Datenbank einrichten muss. Hier haben wir die Daten für die Städte: London, Hong Kong, San Francisco und Paris. Von hier kommen also die Daten, die im Smartphone angezeigt werden. Nun möchte ich folgendes erreichen. Wenn der Nutzer auf einen dieser Buttons draufdrückt, also auf London oder Hong Kong, möchte ich gern den Text, der auf dem Button steht, als String an das Smartphone rüberschicken können. Dazu gehe ich wieder in meine Klasse MainActivity. Hier habe ich ja meine Methode ButtonClickHandler, die ausgelöst wird, wenn ein Button gedrückt wird. Ich deklariere mir eine Variable vom Typ Button und nenne sie Button. Dieser View, der hier übergeben wird, ist der Button, der hier gerade ausgelöst wurde. Also kann ich hier eine Zuweisung machen. Damit das vom Typ passt, muss ich natürlich noch casten. Um mir den Text zu holen, der auf dem Button steht, muss ich ganz simpel die Methode getText aufrufen. Das Ganze wandele ich noch in einen String um, indem ich toString hinten dranschreibe. Nun habe ich also den Text, der auf dem Button draufsteht. Das ist der Name einer Stadt. Also schreibe ich das in eine Variable rein, die ich City nenne. Ich drücke hier einfach ALT-Enter und dann kann ich eine lokale Variable hinzufügen, die ich City nenne. Schließlich sende ich meine Nachricht ab, indem ich SendMessage aufrufe und die Stadt übergebe. Die Methode, die ich hier aufrufen möchte, gibt es aber noch nicht. Deshalb muss ich 'sie erstmal deklarieren. Und zwar so, void als Rückgabetyp passt, string als Parametertyp ebenfalls und den Namen City lasse ich auch so. Den Zugriff auf das Gerät, an das ich senden möchte, habe ich hier oben über eine Variable mNode vom Typ Node, die ich bereits vorher angelegt und auch schon befüllt habe. Außerdem habe ich hier bereits ein Google API Client-Objekt. Mit dem kann ich Google Play Services nutzen. Zum Beispiel Google Maps oder hier das Senden von Nachrichten. Bevor ich diese beiden Variablen aber verwenden kann, muss ich noch testen, ob sie tatsächlich mit gültigen Werten belegt sind. Das heißt, ich schaue, ob sie beide nicht Null sind, Also mNode != null und mGoogleApiClient != null. Wenn beides zutrifft, dann kann ich anfangen, meine Nachricht vorzubereiten. Es gibt bereits eine Klasse, die mir dabei helfen kann. Und zwar wearable.messageApi. Die hat eine Methode namens sendMessage. Diese Methode nimmt nun vier Parameter. Zuerst brauchen wir den Google API Client. Das ist einfach, den haben wir bereits. Als zweites benötigen wir einen String. Das ist die ID des Nodes, mit dem wir reden möchten, also des Gerätes, und die holen wir uns aus meinem mNode. Und dort mit getId. Der dritte Parameter ist noch ein String. Dieser wird an die Nachricht hinten drangehängt. Damit wird der Empfänger auf dem Smartphone dementsprechend Sender auf der Smartwatch zugeordnet. Dafür habe ich mir hier oben eine Konstante deklariert, nämlich Wear_Path. Die schreibe ich hier rein. Der vierte und letzte Parameter ist die eigentliche Nachricht. In unserem Fall der Name der Stadt. Die Nachricht muss als ByteArray übergeben werden. Deshalb schreibe ich also city.getBytes. Diese Methode SendMessage gibt mir jetzt ein Pending Result zurück. An diesem Pending Result kann ich ein Callback anhängen, über den ich informiert werde, wenn der Nachrichtenversand beendet ist. So kann ich erfahren, ob der Nachrichtenversand erfolgreich war oder ob er fehlgeschlagen ist. Dafür gibt es die Methode setResultCallback. Dieser Methode übergebe ich ein Callback-Objekt, das die eigentliche Callback-Methode enthält. Ich schreibe also new ResultCallback. Und da ResultCallback ein Interface ist, muss jetzt auch die entsprechende Methode implementiert werden. Diese Methode heißt OnResult und hat einen Parameter sendMessageResult. Der ist vom Typ SendMessageResult, auf den auch das Interface typisiert ist. Über diesen Parameter kann ich nun herausfinden, ob der Nachrichtenversand erfolgreich war oder nicht. Dazu schreibe ich: if(!SendMessageResult ... .getStatus ... Jetzt gibt es, das ist bequem, die Methode isSuccess. Falls nun der Nachrichtenversand nicht erfolgreich war, gebe ich eine entsprechende Logmeldung aus, die mir das mitteilt: Log.d. Dazu brauche ich ein Tag, das habe ich mir hier oben schon als Konstante definiert, nämlich Wearable_Main. Also: Wearable_Main Und als zweites die kurze Nachricht: Nachricht nicht gesendet. Dazu den entsprechenden Statuscode. Den kann ich mir von SendMessageResult holen über getStatus. ... getStatusCode. Das ist für den Fall, dass es nicht geklappt hat. Jetzt natürlich noch der Erfolgsfall. Auch hier gebe ich wieder eine kurze Statusmeldung aus. Auch wieder Log.d. Auch wieder das entsprechende Tag am Anfang. Diesmal schreibe ich Nachricht erfolgreich gesendet. So. Wir haben also unsere Methode ButtonClickHandler, die aufgerufen wird, wenn ein Button gedrückt wird. In der Methode holen wir uns den Text vom Button und rufen SendMessage auf. Hier schauen wir nun, ob wir mit einem Gerät verbunden sind und ob wir Nachrichten senden können. Und wenn ja, dann senden wir die Nachricht zusammen mit einer Rückruffunktion, über die wir dann informiert werden, ob's geklappt hat oder nicht. Die werten wir entsprechend aus. Das Ergebnis schreiben wir als Logmeldung raus. Nun können Sie die App starten. Achten Sie darauf, dass Sie das Wear-Modul auswählen, damit Sie die App auch tatsächlich auf die Smartwatch deployen. Dann drücken Sie das grüne Knöpfchen. Nach einem kurzen Moment ist die App auf dem Emulator angekommen und wurde gestartet. Hier habe ich also meine vier Buttons. Ich drücke mal auf einen drauf. Wie Sie sehen, steht hier unten: Nachricht erfolgreich gesendet. Das funktioniert natürlich auch mit den anderen Buttons. Damit haben Sie nun eine funktionierende Verbindung von der Smartwatch zum Smartphone und Sie können erfolgreich Nachrichten senden. Nun sind Sie bereit dafür, die Nachrichten auf dem Smartphone zu empfangen.

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!