Eigenständige Wear-Apps

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

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:

  1. Verwenden Sie CapabilityClient, um zu überprüfen, ob Ihre Telefon-App auf dem gekoppelten Telefon installiert ist. Weitere Informationen finden Sie im Beispiel.
  2. Wenn Ihre Telefon-App nicht auf dem Telefon installiert ist, verwenden Sie die PhoneDeviceType.getPhoneDeviceType() -Methode, um den Typ des Telefons zu überprüfen.
  3. Wenn PhoneDeviceType.DEVICE_TYPE_ANDROID zurückgegeben wird, ist das Telefon ein Android-Telefon. Rufen Sie RemoteIntent.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
  4. 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 Sie RemoteIntent.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:

  1. Suchen Sie mit dem NodeClient alle Uhren, die mit dem Telefon des Benutzers verbunden sind. Weitere Informationen finden Sie im Beispiel.
  2. Überprüfen Sie mit der CapabilityClient, auf welcher der Uhren des Benutzers Ihre App installiert ist.
  3. 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.

You might also like

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.