Apps für Android Wear Grundkurs

"AlwaysOn"-Activities erstellen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Soll Ihre App auch im Standby-Modus Informationen auf dem Display anzeigen, dann benötigen Sie eine „AlwaysOn“-Activity.

Transkript

Wenn die Smartwatch eine Weile nicht benutzt wird, wird das Display gedimmt. Häufig wird dabei auch in eine deutlich einfachere Darstellung umgeschaltet. Das ist der sogenannte Ambient-Modus. Er kann auch direkt durch den Nutzer aktiviert werden. Je nach Uhrenmodell gibt es dafür einen Knopf an der Uhr, oder man legt kurz die Hand auf die Uhr und dunkelt sie ab. Ich demonstriere das mal im Emulator. Das hier ist der normale Bildschirm. Wir haben einen blauen Hintergrund und eine weiße Schrift. Zum Abdunkeln drücke ich auf diesen Knopf hier und jetzt geht die Uhr in den Ambient-Modus. Jetzt habe ich weiße Schrift auf schwarzem Grund. Drücke ich wieder auf den Knopf, schalte ich den Ambient-Modus aus. Dann haben wir wieder die ursprüngliche Darstellung. Der blaue Hintergrund und die weiße Schrift. Wenn Sie verschiedene Ziffernblätter haben, haben Sie auch unterschiedliches Verhalten. Ich wähle hier mal ein anderes aus, zum Beispiel den Aviator. Wenn ich jetzt auf den Knopf drücke, sieht der Ambient-Modus so aus. Drücke ich nochmal drauf, bin ich wieder im normalen Modus. Das heißt in diesem Fall bei diesem Ziffernblatt, der Sekundenzeiger bewegt sich weiter. Jetzt bin ich wieder auf das ursprüngliche Ziffernblatt gegangen. Was passiert nun, wenn Ihre App genau dann im Vordergrund ist, in dem die Uhr in diesen Ambient-Modus schaltet? Ich mache mal meine Anwendung an. Ich sehe hier: Landon Hotels, und gehe in den Ambient-Modus, indem ich auf diesen Knopf drücke. Die Uhr zeigt die weiße Schrift auf schwarzem Grund an, also Ambient-Modus. Ich schalte ihn wieder aus. Knöpfchen drücken. Sie können sehen, die App ist verschwunden und das Display sieht genau so aus wie vorher. Was ist passiert? Die App wird gestoppt Und verschwindet vom Display. Wird das Display wieder aktiviert, wird die App nicht mehr angezeigt, sondern eben die Standarddarstellung, also in diesem Fall der blaue Hintergrund mit der Uhr drauf. Sie können nun in Ihre App eine AlwaysOn-Funktionalität einbauen. Dann wird die App beim Eintreten in den Ambient-Modus nicht entfernt, sie läuft normal weiter, bleibt im Vordergrund und ist auch beim Verlassen des Ambient-Modus noch zu sehen. Da die App die ganze Zeit läuft, wird natürlich mehr Energie verbraucht und die Batterie ist früher leer. Sie sollten AlwaysOn also nur dann verwenden, wenn es wirklich sinnvoll und für Ihre App notwendig ist. Jetzt zeige ich Ihnen, wie das funktioniert. Ich habe hier mein Projekt AlwaysOn und ich bin im Wear-Modul. Ich öffne mal das Manifest. Hier habe ich schon ein paar zusätzliche Einträge vorgenommen. Zunächst habe ich hier oben eine zusätzliche Permission eingetragen, nämlich WAKE_LOCK. Das bedeutet, die App kann das Power-Management beeinflussen, insbesondere den Prozessor vom Sleep-Modus abhalten, und eben das Display vom Dimmen. Nur durch diesen Eintrag passiert natürlich noch nichts. Das heißt eben nur, dass die App das darf. Gleich beim Programmieren möchte ich eine Klasse aus der Bibliothek Variable nutzen. Daher habe ich hier unten einen Eintrag namens Uses-Library. Die Bibliothek heißt com.google.android.wearable. Wenn die App später übersetzt und gepackt wird, finden dabei noch eine Menge Optimierungen statt. Das passiert automatisch und wird von einem kleinen Tool namens ProGuard durchgeführt. Damit dieser nun die Bibliothek nicht weg optimiert, müssen wir im Gradle-Build-File noch eine weitere Einstellung trefen. Ich gehe in das Build-Gradle vom Wear-Modul und hier steht als Abhängigkeit eben genau meine Variable-Bibliothek. Das sind die notwendigen Vorbereitungen, und jetzt sind wir bereit, die eigentliche AlwaysOn-Funktionalität in die Anwendung einzubauen. Um die App AlwaysOn-fähig zu machen, beginne ich in der Klasse MainActivity. Es kann natürlich auch irgendeine andere Activity sein. In jedem Fall ist es immer die, die angezeigt werden soll, wenn die Uhr in den Ambient-Modus geht. Also erstes ändere ich die (undeutlich) Klasse meiner Activity von Activity in WearableActivity. Wenn diese bei Ihnen nicht auftauchen sollte, wenn Sie dort nicht reinschreiben können, schauen Sie nochmal im Manifest nach, ob Sie tatsächlich hier unten die Bibliothek richtig eingetragen haben. Nun gehe ich in meine OnCreate-Methode und rufe dort eine Methode dieser WearableActivity auf, nämlich setAmbientEnabled. Schon diese eine Zeile genügt, damit Ihre Activity nicht mehr entfernt wird, wenn die Uhr in den Ambient-Modus geht. Jetzt starten wir die App und schauen, was passiert. Ich starte sie auf meinem Emulator. Nach einem kurzen Moment ist sie auch schon da. Jetzt drücke ich auf den Knopf und schalte den Ambient-Modus ein. Wie Sie sehen, sehen Sie nichts. Beziehungsweise sehen Sie weiterhin die App. Die App ist nicht verschwunden und wenn ich den Ambient-Modus wieder verlasse, ist meine App immer noch da. Wir können sie jetzt entfernen und ich bin wieder auf meinem Startbildschirm. Also: AlwaysOn funktioniert, aber die App ändert nicht wirklich ihr Erscheinungsbild, wenn wir in den Ambient-Modus gehen. Damit unsere App nun auch reagieren kann, müssen wir hier zwei Methoden überschreiben. Die eine heißt onEnterAmbient und die andere onExitAmbient. Diese beiden Callbacks werden aufgerufen, wenn entsprechende Ereignisse eintreten. Bevor wir nun die eigentliche Funktionalität einbauen, möchte ich Ihnen erstmal das Layout zeigen. Das finde ich hier, in der Datei activity_main.xml. Ich habe hier ein Textview mit der ID textView und ein relative Layout der ID layoutContainer. Wie Sie sehen, ist als Hintergrundfarbe für die Activity hier holo_blue_light eingestellt. Im Textview ist keine spezielle Farbe angegeben, deshalb nehmen wir mal an, dass die Schrift die Farbe schwarz hat. In meiner Main Activity-Klasse habe ich hier bereits Referenzen auf diese beiden Elemente. Einmal mTextView für den Textview Und mLayoutContainer für mein Relative Layout. Jetzt möchte ich folgendes erreichen. Wenn die Uhr in den Ambient-Modus geht, soll der Hintergrund meiner Activity schwarz werden und die Schrift weiß. Wenn wir aus dem Ambient-Modus wieder rausgehen, soll es wieder aussehen wie vorher, also Schrift schwarz und Hintergrund blau. Zuerst gehe ich also in die OnEnter-Ambient-Methode. Ich nehme meinen mLayoutContainer und rufe auf: setBackgroundResource. Ich nehme hier aus den Standard- Android-Ressourcen die Farbe schwarz. Das mache ich, indem ich hier schreibe: android.r.color black Das ist also der Hintergrund. Kommen wir zur Textfarbe. Dazu mTextView. Ich rufe hier die Methode setTextColor auf. Ich übergebe hier die Konstante color.WHITE. Im Ambient-Modus ist die Darstellung manchmal etwas pixeliger. Daher füge ich noch einen weiteren Methodenaufruf hinzu. Nämlich den Textview .getPaint().set AntiAlias Das setze ich auf True. Damit aktivier ich das Anti-Aliasing. Damit aktiviere ich die Kantenglättung für meine Schrift. Damit habe ich also festgelegt, was passieren soll, wenn die Uhr in den Ambient-Modus geht. Jetzt muss ich noch das zweite Ereignis behandeln: Die Uhr wacht wieder auf Das mache ich in der zweiten Methode: OnExitAmbient. Jetzt muss ich im Prinzip die gleichen drei Zeilen erneut schreiben, nur mit anderen Parametern. Deswegen kopiere ich mir sie. Ich verdoppele die drei Zeilen mit STRG-D. Dann verschiebe ich sie nach unten. mit Shift-ALT und Pfeil nach unten. Jetzt habe ich natürlich die Klammer zu hier unten auch verschoben. Ich schiebe sie wieder zurück. Nun setze ich die Farbe meines Hintergrunds wieder auf holo_blue_light. Die Schriftfarbe auf Black. Außerdem muss ich hier das Anti-Aliasing wieder ausschalten. Dazu übergebe ich als Parameter einfach False. So. Wir haben hier oben dafür gesorgt, dass unsere Activity überhaupt in der Lage ist, im Vordergrund zu bleiben. Dann haben wir festgelegt, was passieren soll, wenn der Ambient-Modus begonnen wird und hier unten steht, was passieren soll, wenn der Modus wieder verlassen wird. Wir können unsere App also testen. So. Die App läuft. Schwarze Schrift auf blauem Hintergrund. Jetzt schalte ich den Ambient-Modus ein un wir sehen, Hintergrund wird schwarz, Schrift weiß, so wie wir's gerade programmiert haben. Dann schalte ich den Mode wieder aus. Ich gehe also wieder in den Tagesmodus. Der Hintergrund sieht wieder aus wie vorher. nämlich blau, und die Schrift ist wieder schwarz. Nun wissen Sie, wie Sie in Ihrer Smartwatch-App auf den Ambient-Modus reagieren können und die Darstellung entsprechend anpassen. Ich möchte nochmal darauf hinweisen: Der Energieverbrauch ist natürlich höher und die Batterie ist demzufolge auch eher leer. Diese Funktionalität können Sie für eine Vielzahl an Features einsetzen. Sie können zum Beispiel eine Aktualisierung des Displays vornehmen wenn bestimmte Ereignisse eintreten. Sie können einen Countdown herunterzählen lassen oder Informationen diverser Sensoren der Uhr darstellen.

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!