Eine Wear OS-App kann unabhängig von einem Telefon funktionieren. Benutzer können Aufgaben auf einer Uhr erledigen, ohne auf ein Android- oder iOS-Telefon zugreifen zu müssen.
Siehe die folgenden verwandten Ressourcen:
- Beispiel für Remote-App überprüfen
- Planen Sie Ihre Apps
- Identifizieren einer App als eigenständig
- Definieren einer App als Wear-App
- Freigegebener Code und Datenspeicherung
- Erkennen Sie Ihre App auf einem anderen Gerät
- Capability-Namen für die Erkennung Ihrer Apps angeben
- App-Erkennung und Öffnen einer URL von einer Uhr aus
- Details zum Erkennen des Typs des gekoppelten Telefons
- Kotlin
- Java
- App-Erkennung von einem Android-Telefon aus
- Standortdaten für Uhren, die mit iPhones gekoppelt sind
- Beziehen Sie nur die erforderlichen Daten
- Zusätzliche Codebeispiele
Planen Sie Ihre Apps
Mit der Funktion mehrere APK (Multi-APK) von Google Play können Sie mehr als eine APK unter derselben Anwendungsliste veröffentlichen. Eine Uhr APK sollte mit dieser Funktion verteilt werden; betten Sie keine Uhr-APK in eine Telefon-APK ein. Informationen zum Einrichten Ihrer App für die Verteilung über den Google Play Store finden Sie unter Verpacken und Verteilen von Wear-Apps und Funktionsweise mehrerer APKs.
Hinweis: Um sich für eine Promotion im Google Play Store auf Wear (dh im On-Watch Play Store) zu qualifizieren, muss Ihre App unabhängig von einem Telefon funktionieren. iOS- sowie Android-Unterstützung ist erforderlich.
Im Allgemeinen ist die Mindest- und Ziel-API-Ebene für eine eigenständige App und für Wear 2.0 Stufe 25. Die minimale SDK-Stufe kann nur 23 betragen, wenn Sie dieselbe APK für Wear 1.0 und 2.0 verwenden (und daher eine eingebettete Wear 1.0 APK haben).
Hinweis: Aufgrund eines Latenzproblems, das die Verfügbarkeit einer App auf Wear 1 beeinträchtigt.wenn Sie jedoch eine eigenständige Wear 2.0-APK erstellen und weiterhin über eine Wear 1.0-APK verfügen, führen Sie beide der folgenden Schritte aus:
- Geben Sie eine Standalone-Version des Wear APK, und
- Weiterhin eine Version des Wear APK in Ihrem Telefon APK Einbetten
Vorsicht: Wenn Sie ein Update für Ihre vorhandene Produktionstelefon-APK veröffentlichen, bei dem eine eingebettete Wear-APK entfernt wurde, verlieren Produktionsbenutzer, die die Telefon-APK vor der Installation Ihrer eigenständigen Wear-APK aktualisieren, ihre vorhandene Wear-App und ihre Daten. Wenn Sie ein Update für Ihr vorhandenes veröffentlichen, Produktionstelefon APK, Betten Sie Ihre Uhr-APK weiterhin in diese Telefon-APK ein.
Für eigenständige Apps sind Laufzeitberechtigungen erforderlich.
Informationen zu Netzwerkanforderungen und Netzwerkzugriff mit hoher Bandbreite finden Sie unter Netzwerkzugriff und Synchronisierung.
Identifizieren einer App als eigenständig
Wear-Apps müssen ein meta-data
-Element in der Android-Manifestdatei als untergeordnetes Element des <application>
-Elements enthalten. Der Name des meta-data
-Elements ist com.google.android.wearable.standalone
und der Wert muss true
oder false
sein. Das Element gibt an, ob es sich bei Ihrer Watch-App um eine eigenständige App handelt und daher keine telefonseitige Android-App erforderlich ist. Wenn die Einstellung für das Element true
ist, kann Ihre App im Play Store auf Uhren verfügbar gemacht werden, die mit iPhones gekoppelt sind, solange Ihre aktiven APKs in allen Kanälen (z. B. im Beta-Kanal) das Element auf true
. Wenn nicht alle Ihrer APKs (Alpha, Beta und Produktion), die derzeit für Benutzer bereitgestellt werden, über die oben genannte Einstellung verfügen, ist Ihre App nicht verfügbar, wenn ein Benutzer auf einer mit einem iPhone gekoppelten Uhr sucht.
Eine Uhren-App kann als eine der folgenden betrachtet werden:
- Völlig unabhängig von einer Telefon-App
- Halbunabhängig (eine Telefon-App ist nicht erforderlich und würde nur optionale Funktionen bereitstellen)
- Abhängig von einer Telefon-App
Wenn eine Uhren-App völlig unabhängig oder halbunabhängig ist, wird sie als eigenständige App betrachtet. Sie müssen diese Kategorisierung im Google Play Store angeben, indem Sie den Wert dieses meta-data
-Elements auf true
:
<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>
Da eine eigenständige App (dh eine unabhängige oder halbunabhängige App) von einem iPhone-Benutzer oder einem Benutzer eines Android-Telefons installiert werden kann, auf dem der Play Store fehlt, sollte die Watch-App ohne die Telefon-App verwendet werden können.
Wenn eine Uhren-App von einer Telefon-App abhängt, setzen Sie den Wert des obigen meta-data
-Elements auf false
. Wenn Sie das Element auf false
setzen, sollte die Watch-App nur auf einer Uhr installiert werden, die mit einem Telefon mit dem Play Store gekoppelt ist.
Hinweis: Auch wenn der Wert false
ist, kann die Watch-App installiert werden, bevor die Phone-App installiert wird. Wenn eine Watch-App feststellt, dass einem Begleittelefon eine erforderliche Phone-App fehlt, sollte die Watch-App den Benutzer daher auffordern, die Phone-App zu installieren.
Definieren einer App als Wear-App
Sie müssen sicherstellen, dass das <uses-feature>
-Tag in der Android-Manifestdatei in Ihrer App definiert ist. Es muss angegeben werden, dass es sich um eine watch
-App handelt, z. B. android:name="android.hardware.type.watch"
wie folgt:
<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>
Freigegebener Code und Datenspeicherung
Code kann zwischen einer Wear-App und einer Telefon-App geteilt werden. Optional kann sich Code, der für einen Formfaktor spezifisch ist, in einem separaten Modul befinden.
Allgemeiner Code für Netzwerke kann sich beispielsweise in einer gemeinsam genutzten Bibliothek befinden.
Sie können Standard-Android-Speicher-APIs verwenden, um Daten lokal zu speichern, wie Sie es auf einem Telefon tun würden. Sie können beispielsweise die SharedPreferences-APIs oder die Raumpersistenzbibliothek verwenden.
Erkennen Sie Ihre App auf einem anderen Gerät
Ihre Uhren-App kann erkennen, ob die entsprechende Telefon-App verfügbar ist und umgekehrt.
Ihre Telefon-App oder Uhren-App kann CapabilityClient
verwenden, um die Präsenz der App auf einem gekoppelten Gerät anzuzeigen. Dies kann statisch und dynamisch erfolgen. Wenn sich eine App auf einem Knoten im Wear-Netzwerk eines Benutzers befindet (d. H. auf einem Telefon, einer gekoppelten Uhr oder in der Cloud), ermöglicht CapabilityClient
einer anderen App zu erkennen, ob sie installiert ist. Weitere Informationen finden Sie unter Funktionen anzeigen.
Wenn eine Ihrer Apps die andere nicht erkennt, können Sie einem Benutzer ermöglichen, den Play Store-Eintrag auf seinem Remote-Gerät zu öffnen. Dies ist eine Lösung für Watch-Apps, für deren ordnungsgemäße Funktion die Anwesenheit der Begleittelefon-App erforderlich ist. Voraussetzung ist, dass der Play Store auf dem Remote-Gerät vorhanden ist.
Beachten Sie, dass nicht alle Telefone den Play Store unterstützen (z. B. iPhones usw.).
In diesem Abschnitt werden Best Practices für diese Szenarien beschrieben:
- Ihre eigenständige Uhren-App benötigt Ihre Telefon-App
- Ihre Telefon-App benötigt Ihre eigenständige Uhren-App
Überprüfen Sie das Beispiel, das diese Funktionalität zeigt. Weitere Informationen zu den unten beschriebenen Klassen finden Sie in der Wear API-Referenz. In dieser Referenz finden Sie auch Informationen zur PhoneDeviceType
-Klasse, die eine getPhoneDeviceType()
-Methode enthält, mit der Ihre Wear-App überprüfen kann, ob es sich bei einem Begleittelefon um ein Android- oder iOS-Gerät handelt.
Capability-Namen für die Erkennung Ihrer Apps angeben
Geben Sie für die App, die jedem Gerätetyp (Uhr oder Telefon) entspricht, eine eindeutige Zeichenfolge für den Capability-Namen in der res/values/wear.xml
-Datei an.
In Ihrem mobilen Modul könnte die wear.xml
-Datei beispielsweise Folgendes enthalten:
In Ihrem Wear-Modul würde die wear.xml
-Datei einen anderen Wert für den Capability-Namen enthalten, z. B. den folgenden:
Weitere Informationen finden Sie unter Capabilities anzeigen.
App-Erkennung und Öffnen einer URL von einer Uhr aus
Ihre Watch-App kann erkennen, ob das Begleittelefon eines Benutzers über Ihre Phone-App verfügt:
- Verwenden Sie
CapabilityClient
, um zu überprüfen, ob Ihre Telefon-App auf dem gekoppelten Telefon installiert ist. Weitere Informationen finden Sie im Beispiel. - Wenn Ihre Telefon-App nicht auf dem Telefon installiert ist, verwenden Sie die
PhoneDeviceType.getPhoneDeviceType()
-Methode, um den Typ des Telefons zu überprüfen. - Wenn
PhoneDeviceType.DEVICE_TYPE_ANDROID
zurückgegeben wird, ist das Telefon ein Android-Telefon. Rufen SieRemoteIntent.startRemoteActivity()
auf dem Wear-Gerät an, um den App Store auf dem Telefon zu öffnen. Verwenden Sie den Markt-URI für Ihre Telefon-App (der sich möglicherweise von Ihrem Telefon-URI unterscheidet). Verwenden Sie beispielsweise einen Markt-URI wie:market://details?id=com.example.android.wearable.wear.finddevices
- Wenn
PhoneDeviceType.DEVICE_TYPE_IOS
zurückgegeben wird, bedeutet dies, dass das Telefon ein iOS-Telefon ist (ohne Play Store verfügbar). Öffnen Sie den App Store auf dem iPhone, indem SieRemoteIntent.startRemoteActivity()
auf dem Wear-Gerät aufrufen. Sie können die iTunes-URL Ihrer App angeben, z. B.. Auf einem iPhone können Sie unter Wear OS nicht programmgesteuert feststellen, ob Ihre Telefon-App installiert ist. Stellen Sie dem Benutzer als bewährte Methode einen Mechanismus (z. B. eine Schaltfläche) zur Verfügung, um das Öffnen des App Store manuell auszulösen.
Beachten Sie, dass Sie mithilfe der oben beschriebenen RemoteIntent
-API angeben können, dass eine beliebige URL auf dem Telefon von der Uhr aus geöffnet werden soll und keine Telefon-App erforderlich ist.
Details zum Erkennen des Typs des gekoppelten Telefons
Hier ist ein Ausschnitt, der die getPhoneDeviceType()
-Methode verwendet, um den Typ des Telefons zu überprüfen, mit dem die Uhr gekoppelt ist:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
Der von der Methode getPhoneDeviceType()
zurückgegebene Wert ist einer der folgenden:
Rückgabewert | Beschreibung |
---|---|
DEVICE_TYPE_ANDROID |
Das Companion Phone ist ein Android-Gerät. |
DEVICE_TYPE_IOS |
Das Companion Phone ist ein iOS-Gerät. |
DEVICE_TYPE_ERROR_UNKNOWN |
Bei der Bestimmung des Typs des gekoppelten Telefons ist ein Fehler aufgetreten. |
App-Erkennung von einem Android-Telefon aus
Ihr Android-Telefon kann erkennen, ob die Wear-Geräte eines Benutzers über Ihre Watch-App verfügen:
- Suchen Sie mit dem
NodeClient
alle Uhren, die mit dem Telefon des Benutzers verbunden sind. Weitere Informationen finden Sie im Beispiel. - Überprüfen Sie mit der
CapabilityClient
, auf welcher der Uhren des Benutzers Ihre App installiert ist. - Wenn Ihre App nicht auf allen Uhren des Benutzers installiert ist (vergleichen Sie die Ergebnisse aus Schritt 1 mit den Ergebnissen aus Schritt 2), erlauben Sie dem Benutzer, den Play Store auf den verbleibenden Wear-Geräten vom Telefon aus über die
RemoteIntent.startRemoteActivity()
-Methode zu öffnen. Verwenden Sie insbesondere den Market-URI für die Wear-App (der sich möglicherweise vom URI Ihrer Telefon-App unterscheidet). Verwenden Sie beispielsweise einen Markt-URI wie:market://details?id=com.example.android.wearable.wear.finddevices
Standortdaten für Uhren, die mit iPhones gekoppelt sind
Für Uhren, die mit iPhones gekoppelt sind, sollten Entwickler den Fused Location Provider (FLP) verwenden, um Standortdaten auf einer Uhr abzurufen. Siehe Erkennen Lage auf Verschleiß.
Wenn das Begleittelefon verfügbar ist, verwendet FLP das Begleittelefon für Standortdaten.
Beziehen Sie nur die erforderlichen Daten
Wenn Sie Daten aus dem Internet abrufen, sollten Sie im Allgemeinen nur die erforderlichen Daten abrufen. Andernfalls führen Sie möglicherweise zu unnötiger Latenz, Speichernutzung und Batterieverbrauch.
Wenn eine Uhr über eine Bluetooth LE-Verbindung verbunden ist, kann Ihre App je nach Uhr auf eine Bandbreite von nur 4 Kilobyte pro Sekunde zugreifen. Daher werden die folgenden Schritte empfohlen:
- Überprüfen Sie Ihre Netzwerkanforderungen und -antworten auf zusätzliche Daten, die nur für eine Telefon-App bestimmt sind
- Verkleinern Sie große Bilder, bevor Sie sie über ein Netzwerk an eine Uhr senden
Informationen zu Fällen, in denen ein Netzwerk mit hoher Bandbreite benötigt wird, finden Sie unter Netzwerkzugriff mit hoher Bandbreite.
Zusätzliche Codebeispiele
Das WearVerifyRemoteApp-Beispiel demonstriert die Verwendung der auf dieser Seite behandelten APIs.