Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Apps für Android Wear Grundkurs

Benachrichtigungen mit Action-Buttons

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video lernen Sie, einer Benachrichtigung einen Button hinzuzufügen und mit diesem auf dem Smartphone eine Aktion auszulösen.

Transkript

In Benachrichtigungen, die auf Smartphones und Smartwatchs erscheinen, lassen sich auch Action Buttons einfügen. Dafür brauchen Sie im Wesentlichen einen Button und ein Icon für diesen Button. Um das zu demonstrieren, füge ich meinem Projekt einen Button hinzu, mit dem der Nutzer Google Maps öffnen und sich die Stadt zeigen lassen kann, in der das ausgewählte Hotel liegt. Ich habe hier das Projekt ActionButtons geöffnet. Zuerst füge ich dem Projekt das Icon hinzu, das später auf dem Button erscheinen soll, und zwar als Image Asset. Dazu klicke ich mit der rechten Maustaste hier auf Res und auf New und auf Image Asset. Wir möchten ActionBar und Tap Icons. Als Name gebe ich hier mal ic_action_map an. Der Typ ist Clipart. Jetzt können wir uns das entsprechende Bildchen aussuchen. Da es um Markierungen auf einer Landkarte gehen soll, nehme ich hier unten links dieses Bildchen. Hier können Sie das Icon in den vier verschiedenen Auflösungen sehen, in denen es jetzt zum Projekt hinzugefügt wird. Ich klicke auf Next und dann auf Finish. Im Drawable-Verzeichnis unseres Ressourcenordners finden wir jetzt ic_action_map und darin unser Icon in den vier verschiedenen Auflösungen. So. Das Icon ist fertig. Jetzt brauchen wir noch den Button. Ich öffne jetzt also meine DetailActivity und gehe in die Methode sendNotification. Um die Position auf der Karte eindeutig festlegen zu können, brauche ich einen sogenannten Uniform Resource Identifier. Das ist im Prinzip ein einfacher String, mit dem man eine Ressource im weitesten Sinne adressieren kann. Zum Beispiel ein Titel in einer Playlist, eine Telefonnummer aus einem Adressbuch oder eben ein Punkt auf der Landkarte. Ich füge meinen Code hier ein. Direkt nach dem Extender. Um einen Uniform Resource Identifier vorzuhalten, gibt es schon die passende Klasse, und zwar im Paket android.net. Die heißt genau so. Die Variable nenne ich entsprechend URI, also genau so wie die Klasse. Um dieses Objekt zu erzeugen, das dann meinen String enthält, nehme ich eine statische Methode aus der Klasse, und die heißt Parse. Da schreibe ich jetzt meinen String rein. Später soll hiermit ein Intent-Filter ausgelöst werden, und damit das auch der richtige ist, muss mein Sting beginnen mit: geo: Dadurch wird dann der Intent-Filter ausgelöst der für das Starten einer App zum Anzeigen einer Landkarte zuständig ist, was in der Regel Google Maps sein wird. Als Startposition der Karte für die Länge und Breite gebe ich 0,0 an. Danach folgt jetzt der eigentliche Abfragetext, beginnend mit einem Fragezeichen, ein q= Also das Query-Präfix. Danach sollte jetzt die Stadt kommen, die angezeigt werden soll. Die bekomme ich direkt vom ausgewählten Hotel, also über hotel.getCity. Als nächstes benötige ich nun einen Intent, in den ich diese URI hineinpacken kann. Also ein Intent mapIntent new Intent Und da etwas angezeigt werden soll, gebe ich als Action intent.Action_View an Jetzt packe ich die URI noch als Daten rein, also mapIntent.setData und hier die URI. Und fertig ist der Intent. Nun soll Google Maps ja erst geöffnet werden, wenn der Nutzer das explizit auslöst. Das heißt, wir können nicht einfach startActivity verwenden, sondern wir benötigen dafür einen pendingIntent. Ich erstelle mir jetzt also den pendingIntent. Ich nenne ihn mapPendingIntent. Und ich bekomme ihn über pendingIntent.getActivity. Als Kontext gebe ich this an. Als requestCode, also für die Zuordnung beim Empfangen, die Null. Der Intent, um den es hier geht, ist mein mapIntent. Dann setze ich noch ein Flag, nämlich Flag_Update_Current. Das bedeutet, wenn der PendingIntent bereits existiert, wird er wiederverwendet und es werden nur dessen Daten durch die neuen ersetzt. Nun haben wir also einen pendingIntent, der ein Intent enthält, der wiederum Google Maps öffnen soll. Damit können wir nun den eigentlichen Action Button erstellen, mit diesem pendingIntent verbinden und in eine Benachrichtigung einbauen. Für das Erstellen der Benachrichtigung habe ich hier unten meinen Notification Builder. Und für das Hinzufügen einer Action hat dieser eine Methode namens addAction. Hier benötigen wir drei Parameter. Zuerst das Icon, dann den Titel und schließlich den entsprechenden pendingIntent. Als Icon nehmen wir das vorhin festgelegte Icon. Also R.drawable.ic_action_map. Als Titel Karte. Um eine Karte anzuzeigen. Und schließlich den eben erzeugten pendingIntent. mapPendingIntent. So. Der Button ist da. Das Icon für den Button ist da. Und wir haben auch festgelegt, was passieren soll, wenn der Button gedrückt wird. Wir können das Programm also testen. So. Da ist die App. Ich wähle ein Hotel aus. London. Und tippe den Notify-Button an. Und siehe da, auf der Smartwatch erscheint tatsächlich die entsprechende Meldung. Ich ziehe sie nach oben, schiebe sie nach links und hier ist mein Button mit der entsprechenden Beschriftung. Jetzt tippe ich auf den Button drauf und auf dem Smartphone öffnet sich Google Maps und zeigt mir London an. So, jetzt gehe ich auf dem Smartphone eins zurück. Noch eins zurück, zu der Hotelliste. Und wähle ein anderes Hotel aus ... Paris. Jetzt tippe ich wieder auf Notify. Und wie Sie sehen, bleiben wir beim Button, aber das Hintergrundbild hat sich entsprechend geändert. Vorhin hatte ich ja beim pendingIntent mit diesem Flag festgelegt, dass der Intent wiederverwendet werden soll, wenn er bereits existiert, und nur die Daten ausgetauscht werden sollen. Hier: Flag_Update_Current. Das führt jetzt halt zu diesem Verhalten. Ich schiebe das wieder nach rechts. Dann sehen Sie, es wurden tatsächlich alle Daten aktualisiert. Hier steht jetzt also auch der Text zu Paris. Jetzt gehe ich nochmal zum Action Button, drücke drauf. Und auf dem Smartphone öffnet sich jetzt auch wieder Google Maps und zeigt mir diesmal Paris an. Sie können Ihren Benachrichtigungen so viele Buttons hinzufügen wie Sie wollen Die Methode heißt ja addAction. Daran können Sie ja schon sehen, dass diese Methode dazu gedacht ist, auch mehrfach aufgerufen zu werden. Nun wissen Sie, wie Sie Ihre Benachrichtigungen um Action Buttons erweitern können.

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!