Watchface Wearable Settings

Category: 


Um ein Watchface personalisieren zu können, sollte man dem Nutzer die Möglichkeit geben, einzelne Einstellungen anzupassen.
Dabei gibt es zwei verschiedene Ansätze, welche auch kombiniert werden können. Einerseits kann man eine Konfigurationsapp direkt auf der Smartwatch anzeigen, andererseits kann man dies auch auf dem Handy vornehmen. Da die Smartwatch nur einen relativ kleinen Bildschirm hat, sollte man sich hierbei auf einfache Einstellungen beschränken, welche idealerweise aus binären Entscheidungen bestehen. Mit der Handheld App kann man dann komplexere Einstellungen vornehmen, wie etwa eine Farbauswahl oder ähnliches.

Intent zur Konfiguration

Um einen Watchface Service um eine Konfiguration zu erweitern, müssen wir wieder das Wearable Manifest öffnen und den service Tag um folgendes Metadatum ergänzen:

<meta-data
 android:name="com.google.android.wearable.watchface.wearableConfigurationAction"
 android:value="com.infectedbytes.example.watchface.samplewatch.CONFIG_DIGITAL" />

Den Wert des android:value Attributs solltet ihr natürlich entsprechend anpassen, sodass dort euer package Name steht. Außerdem muss dieser Wert auch in der Activity verwendet werden.

Die Konfigurations-Activity, die wir gleich erstellen werden, registriert einen Intent-Filter, sodass das System diese Aktivität startet, wenn der Benutzer die Watchface Einstellungen öffnet.

Wearable Activity

Um dieses Tutorial möglichst einfach und übersichtlich zu halten, erstellen wir bloß eine neue "Blank Activity". Anschließend können wir vorsorglich schonmal die Ansicht umstellen, wechselt dazu das Layout von Nexus 4 auf eines der Wear Geräte (Square oder Round).


In eurer neuen Activity solltet ihr natürlich noch eine simple UI entwerfen. In diesem Tutorial überspringen wir diesen Schritt und arbeitet mit der reinen Blank Activity.

Nun geht es wieder ans Manifest der Wearable App.
Diese wurde nun automatisch um einen activity Eintrag erweitert.
Diesem müssen wir nun einen sogenannten intent-filter hinzufügen, wodurch wir festlegen auf welche "Ereignisse" diese Activity reagiert.

<activity
 android:name=".DigitalWatchFaceWearableConfigActivity"
 android:label="@string/digital_config_name">
  <intent-filter>
    <action android:name="com.infectedbytes.example.watchface.samplewatch.CONFIG_DIGITAL" />
    <category android:name="com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

Der Wert von <action android:name="..."> muss der gleich sein wie der des Metadatums weiter oben.

Wenn nun alles geklappt hat und ihr neu kompiliert, erhaltet im Watchface Auswahlbildschirm ein kleines Zahnrad unter eurem Watchface. Wenn man auf dieses klickt, öffnet sich unsere (leere) Activity.

Und damit sind wir auch schon am Ende des Tutorials angelangt. Auf der folgenden Seite findet ihr noch einmal den gesamten Code des Manifests zum Vergleich.