Wir empfehlen, dass Wear OS-Apps unabhängig von einem Smartphone funktionieren, damit Nutzer Aufgaben auf einer Smartwatch erledigen können, ohne auf ein Android- oder iOS-Smartphone zugreifen zu müssen. Wenn für deine Smartwatch-App eine Interaktion über ein Smartphone erforderlich ist, musst du deine Wear OS-App als nicht eigenständig kennzeichnen und dafür sorgen, dass der Nutzer die Smartphone-App verwenden kann.
App planen
Mit dem Android App Bundle können Sie automatisch optimierte Android-Paket-Kits (APKs) für die Gerätekonfigurationen der einzelnen Nutzer unter demselben App-Eintrag generieren. So können Nutzer nur den Code und die Ressourcen herunterladen, die sie zum Ausführen Ihrer App benötigen.
Informationen zum Einrichten deiner App für die Verteilung über den Google Play Store findest du unter Wear OS-Apps im Paket anbieten und vertreiben und im Leitfaden zu Android App Bundles.
Bei neuen Apps muss das Ziel-API-Level mindestens 30 sein. Weitere Informationen finden Sie unter Anforderungen an das Ziel-API-Level von Google Play erfüllen. Lege targetSdkVersion auf API-Level 30 (Wear OS 3) fest, damit deine App auf der neuesten Plattformversion gut funktioniert.
Informationen zu Netzwerkanfragen und zum Netzwerkzugriff mit hoher Bandbreite finden Sie unter Netzwerkzugriff und Synchronisierung auf Wear OS.
App als Wear OS App definieren
Sie müssen das
<uses-feature>-Tag in der Android-Manifestdatei Ihrer App definieren.
Fügen Sie einen Eintrag wie den folgenden hinzu, um anzugeben, dass es sich um eine Smartwatch-App handelt:
<uses-feature android:name="android.hardware.type.watch" />
App als eigenständig oder nicht eigenständig kennzeichnen
Eine Smartwatch-App gilt entweder als eigenständig oder nicht eigenständig:
- Eigenständig: Eine völlig unabhängige App, für deren Hauptfunktionen keine Smartphone-App erforderlich ist. Aufforderungen zum Öffnen auf dem Smartphone sind zwar zulässig, die App muss aber alternative Möglichkeiten bieten, eine App-Funktion abzuschließen, z. B. einen Shortlink oder QR-Code, ohne dass ein verbundenes Smartphone erforderlich ist.
- Nicht eigenständig: Eine abhängige App, für deren Kernfunktionen eine App auf einem Smartphone oder einem anderen Gerät erforderlich ist. Diese Option ist am besten für Apps geeignet, bei denen es nicht einfach ist, eine alternative Methode zum Ausführen einer wichtigen App-Funktion wie der Authentifizierung anzubieten, z. B. einen QR-Code oder einen Shortlink.
Hinweis:Auch bei nicht eigenständigen Apps können Nutzer die Wear OS-App vor der mobilen App installieren. Wenn Ihre Wear OS-App also erkennt, dass auf einem in der Nähe befindlichen Mobilgerät die erforderliche Companion-App fehlt, fordern Sie den Nutzer auf, die Companion-App zu installieren.
Google überprüft die Richtigkeit des Standalone-Status einer App während der Bereitstellung der App. Dieser Wert wirkt sich auf die Sichtbarkeit von Apps im Play Store auf Geräten ohne Verbindung aus, z. B. Wear OS-Geräten, die nicht mit Mobilgeräten gekoppelt sind. Nicht eigenständige Apps sowie Apps, die Entwickler fälschlicherweise als „eigenständig“ kennzeichnen, sind für Nutzer auf diesen nicht gekoppelten Geräten nicht verfügbar.
Legen Sie in Ihrer Wear OS-App den Wert des
meta-data-Elements com.google.android.wearable.standalone in der Android-Manifestdatei fest, um anzugeben, ob Ihre App eigenständig oder nicht eigenständig ist.
Wenn Ihre Smartwatch-App eine völlig unabhängige, eigenständige App ist, geben Sie dies im Google Play Store an, indem Sie den Wert von com.google.android.wearable.standalone auf true festlegen:
<meta-data android:name="com.google.android.wearable.standalone" android:value="true" />
Wenn Ihre Smartwatch-App nicht eigenständig ist und für die Hauptfunktionen von einer anderen App abhängt, legen Sie den Wert von com.google.android.wearable.standalone auf false fest. Das bedeutet, dass für die Smartwatch-App ein anderes Gerät erforderlich ist. Dies hat jedoch keine Auswirkungen auf die Bewerbung Ihrer App im Google Play Store.
Hinweis:Auch wenn der Wert von com.google.android.wearable.standalone false ist, kann die Smartwatch-App vor der Installation der Smartphone-App installiert werden.
Wenn Ihre Smartwatch-App also erkennt, dass auf einem Companion-Smartphone die erforderliche Smartphone-App fehlt (wie auf dieser Seite beschrieben), fordern Sie den Nutzer auf, die Smartphone-App zu installieren.
Gemeinsamer Speicher für Code und Daten
Code kann zwischen einer Wear OS-App und einer Smartphone-App geteilt werden. Gemeinsamer Code für die Netzwerkkommunikation kann beispielsweise in einer freigegebenen Bibliothek enthalten sein.
Optional kann Code, der für einen bestimmten Formfaktor spezifisch ist, in einem separaten Modul enthalten sein.
Sie können Standard-Android-Speicher-APIs verwenden, um Daten lokal zu speichern, wie Sie es auf einem Smartphone tun würden. Sie können beispielsweise die SharedPreferences-APIs oder die Room-Persistenzbibliothek verwenden.
App auf einem anderen Gerät erkennen
Ihre Smartwatch-App und die entsprechende Smartphone-App können jeweils erkennen, ob die andere App verfügbar ist.
Ihre Smartphone- und Smartwatch-Apps können die
CapabilityClient verwenden, um einem gekoppelten Gerät ihre Anwesenheit mitzuteilen. Dies kann statisch oder dynamisch erfolgen.
Wenn sich eine App auf einem Knoten im Wear OS-Netzwerk eines Nutzers befindet, z. B. auf einem Smartphone, einer gekoppelten Smartwatch oder in der Cloud, können andere Apps sie über die CapabilityClient erkennen. Weitere Informationen finden Sie unter
Funktionen bewerben.
Wenn eine Ihrer Apps die andere nicht erkennen kann, können Sie den Nutzer auffordern, den Play Store-Eintrag auf dem betroffenen Gerät zu öffnen. Dies ist eine Lösung für Smartwatch-Apps, die die Companion-App auf dem Smartphone benötigen, um richtig zu funktionieren.
Sie müssen prüfen, ob der Play Store auf dem Gerät verfügbar ist, da nicht alle Smartphones, z. B. iPhones, den Play Store unterstützen.
In den folgenden Abschnitten werden Best Practices für zwei Szenarien beschrieben:
- Ihre eigenständige Smartwatch-App benötigt Ihre Smartphone-App.
- Ihre Smartphone-App benötigt Ihre eigenständige Smartwatch-App.
Sie können sich auch das
Beispiel für Datalayer-Helfer ansehen. Dort wird gezeigt, wie Sie die
Bibliotheken für Datalayer-Helfer verwenden, die Teil von
Horologist sind. Mit diesen Hilfsklassen können Sie die Verbindung zwischen einem Mobilgerät und einem Wear OS-Gerät überwachen.
Weitere Informationen zu den im folgenden Abschnitt beschriebenen Klassen finden Sie in der Wear OS API-Referenz.
Diese Referenz enthält auch Informationen zur Klasse
PhoneTypeHelper, die eine Methode
getPhoneDeviceType() enthält, mit der deine Wear OS-App prüfen kann, ob es sich bei einem Begleit-Smartphone um ein Android- oder iOS-Gerät handelt.
Funktionsnamen für die Erkennung Ihrer Apps angeben
Geben Sie für die App, die dem jeweiligen Gerätetyp (Smartwatch oder Smartphone) entspricht, einen eindeutigen String für den Namen der Funktion in der Datei res/values/wear.xml an.
In Ihrem mobilen Modul könnte die Datei wear.xml beispielsweise Folgendes enthalten:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
In der Datei wear.xml Ihres Wear OS-Moduls ist ein anderer Wert für den Namen der Funktion enthalten, z. B.:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Weitere Informationen finden Sie unter Funktionen bewerben.
App-Erkennung und Öffnen einer URL über eine Smartwatch
Ihre Smartwatch-App kann erkennen, ob auf dem Companion-Smartphone eines Nutzers Ihre Smartphone-App installiert ist. Gehen Sie dazu so vor:
-
Prüfe mit der
CapabilityClient, ob die Smartphone-App auf dem gekoppelten Smartphone installiert ist. Weitere Informationen finden Sie im Beispiel für Datalayer-Helfer auf GitHub. -
Wenn die Telefon App nicht auf dem Smartphone installiert ist, verwenden Sie die Methode
PhoneDeviceType.getPhoneDeviceType(), um den Typ des Smartphones zu prüfen. Weitere Informationen finden Sie im nächsten Abschnitt. -
Wenn
PhoneDeviceType.DEVICE_TYPE_ANDROIDzurückgegeben wird, handelt es sich bei dem Smartphone um ein Android-Smartphone. Rufen SieRemoteActivityHelper.startRemoteActivity()auf dem Wear OS-Gerät auf, um den Play Store auf dem Smartphone zu öffnen. Verwenden Sie den Market-URI für Ihre Smartphone-App, der sich möglicherweise vom URI Ihrer Wear-App unterscheidet. Verwenden Sie beispielsweise einen Markt-URI wiemarket://details?id=com.example.android.wearable.wear.finddevices. -
Wenn
PhoneDeviceType.DEVICE_TYPE_IOSzurückgegeben wird, handelt es sich bei dem Smartphone um ein iOS-Smartphone ohne Play Store. Öffnen Sie den App Store auf dem iPhone, indem SieRemoteActivityHelper.startRemoteActivity()auf dem Wear OS-Gerät aufrufen. Sie können die iTunes-URL Ihrer App angeben, z. B.https://itunes.apple.com/us/app/yourappname.Unter Wear OS kann nicht programmgesteuert ermittelt werden, ob Ihre Smartphone-App auf einem iOS-Gerät installiert ist. Als Best Practice empfehlen wir, dem Nutzer eine Möglichkeit zu bieten, das Öffnen des App-Stores manuell auszulösen.
Hinweis: Verwenden Sie die oben beschriebene RemoteActivityHelper API, um anzugeben, dass eine beliebige URL auf dem Smartphone über die Smartwatch geöffnet werden soll und dass keine Smartphone-App erforderlich ist.
Details zur Erkennung des Typs des gekoppelten Smartphones
Hier ist ein Snippet, in dem mit der Methode getPhoneDeviceType() der Typ des Smartphones geprüft wird, mit dem die Smartwatch gekoppelt ist:
var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)
Der von der Methode getPhoneDeviceType() zurückgegebene Wert ist einer der folgenden:
| Rückgabewert | Beschreibung |
|---|---|
DEVICE_TYPE_ANDROID
|
Das gekoppelte Smartphone ist ein Android-Gerät. |
DEVICE_TYPE_IOS
|
Das Begleitsmartphone ist ein iOS-Gerät. |
DEVICE_TYPE_UNKNOWN
|
Das Companion-Smartphone ist ein unbekanntes Gerät. |
DEVICE_TYPE_ERROR
|
Beim Ermitteln des Typs des gekoppelten Smartphones ist ein Fehler aufgetreten. Später sollte eine weitere Überprüfung erfolgen. |
App-Erkennung über ein Android-Smartphone
Ihr Android-Smartphone kann erkennen, ob die Wear OS-Geräte eines Nutzers Ihre Smartwatch-App haben. Gehen Sie dazu so vor:
-
Suchen Sie mit der
NodeClientnach allen Smartwatches, die mit dem Smartphone des Nutzers verbunden sind. Weitere Informationen finden Sie im Beispiel für Datalayer-Helfer auf GitHub. -
Prüfe mit
CapabilityClient, auf welcher der Smartwatches des Nutzers deine App installiert ist. -
Wenn Ihre App nicht auf allen Smartwatches des Nutzers installiert ist, können Sie dem Nutzer ermöglichen, den Play Store auf den verbleibenden Wear OS-Geräten über das Smartphone mit der Methode
RemoteActivityHelper.startRemoteActivity()zu öffnen. Verwenden Sie den Markt-URI für die Wear OS-App, der sich möglicherweise vom URI Ihrer Smartphone-App unterscheidet. Verwenden Sie beispielsweise einen Markt-URI wie:market://details?id=com.example.android.wearable.wear.finddevices.
Standortdaten für mit iPhones gekoppelte Smartwatches
Bei Smartwatches, die mit iPhones gekoppelt sind, verwenden Sie den Fused Location Provider (FLP), um Standortdaten auf der Smartwatch abzurufen. Weitere Informationen finden Sie unter Standort auf Wear OS erkennen.
Wenn das Begleit-Smartphone verfügbar ist, verwendet FLP es für Standortdaten.
Nur erforderliche Daten erheben
Wenn Sie Daten aus dem Internet abrufen, sollten Sie im Allgemeinen nur die erforderlichen Daten abrufen. Andernfalls kann es zu unnötigen Latenzen, unnötiger Speichernutzung und unnötigem Akkuverbrauch kommen.
Wenn eine Smartwatch über eine Bluetooth LE-Verbindung verbunden ist, hat Ihre App je nach Smartwatch möglicherweise nur Zugriff auf eine Bandbreite von 4 Kilobyte pro Sekunde. Wir empfehlen daher Folgendes:
- Prüfen Sie Ihre Netzwerkanfragen und ‑antworten auf zusätzliche Daten, die nur für eine Telefon-App erforderlich sind.
- Verkleinere große Bilder, bevor du sie über ein Netzwerk an eine Smartwatch sendest.
Wenn ein Netzwerk mit hoher Bandbreite erforderlich ist, lesen Sie den Abschnitt Netzwerkzugriff mit hoher Bandbreite.
Zusätzliche Codebeispiele
Im Beispiel für Datalayer-Helfer wird die Verwendung der auf dieser Seite behandelten APIs weiter veranschaulicht.