Mit Wear OS by Google kann eine Smartwatch direkt mit einem Netzwerk kommunizieren, ohne Zugriff auf ein Android- oder iOS-Smartphone. Verwenden Sie nicht die Data Layer API, um eine Verbindung zu Wear OS-App mit einem Netzwerk verbinden Folgen Sie stattdessen den Richtlinien und Schritten in dieser .
Netzwerkzugriff
Wear OS-Apps können Netzwerkanfragen senden. Wenn eine Smartwatch über Bluetooth verfügt Verbindung zu einem Smartphone herstellen, wird der Netzwerkverkehr der Smartwatch das Smartphone.
Wenn ein Smartphone nicht verfügbar ist, werden WLAN- und Mobilfunknetze verwendet, je nachdem, die Hardware der Uhr. Die Wear OS-Plattform übernimmt die Übergänge zwischen Netzwerken.
Sie können Protokolle wie HTTP, TCP und UDP verwenden. Die
android.webkit
APIs, einschließlich der Klasse CookieManager
, sind nicht
verfügbar. Sie können Cookies verwenden, indem Sie Header für Anfragen und
Antworten.
Verwenden Sie WorkManager
für asynchrone Anfragen, einschließlich regelmäßiger Abfragen
Intervalle.
Weitere Informationen zum Herstellen einer Verbindung zu bestimmten Netzwerktypen finden Sie unter Netzwerkdaten lesen Bundesstaat.
Netzwerkzugriff mit hoher Bandbreite
Die Wear OS-Plattform verwaltet Netzwerkverbindungen mit dem Ziel, User Experience insgesamt zu verbessern. Die Plattform wählt das standardmäßig aktive Netzwerk dem Gleichgewicht zwischen zwei Anforderungen: langer Akkulaufzeit und Netzwerkbandbreite.
Wenn die Akkulaufzeit priorisiert wird, hat das aktive Netzwerk möglicherweise nicht genügend Bandbreite für Netzwerkaufgaben wie das Transportieren großer Dateien oder Streaming Medien.
Dieser Abschnitt enthält Anleitungen zur Verwendung der Klasse ConnectivityManager
für:
sorgen Sie dafür, dass Ihre App
die benötigte Netzwerkbandbreite hat. Allgemein
Informationen zur detaillierten Kontrolle über Netzwerkressourcen finden Sie unter Verwalten
Netzwerknutzung.
WLAN-Verbindung anfordern
Für Anwendungsfälle, die einen Netzwerkzugriff mit hoher Bandbreite erfordern, z. B. Transport großen Dateien oder Streaming Media benötigen, fordern Sie eine Verbindung mit einer hohen Bandbreite an. wie zum Beispiel WLAN. Dies wird im folgenden Beispiel gezeigt:
Kotlin
val callback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { super.onAvailable(network) // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network) } override fun onLost(network: Network) { super.onLost(network) // Called when a network disconnects or otherwise no longer satisfies this request or callback. } } connectivityManager.requestNetwork( NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback )
Java
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() { public void onAvailable(Network network) { super.onAvailable(network); // The Wi-Fi network has been acquired. Bind it to use this network by default. connectivityManager.bindProcessToNetwork(network); } public void onLost(Network network) { super.onLost(network); // Called when a network disconnects or otherwise no longer satisfies this request or callback. } }; connectivityManager.requestNetwork( new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(), callback );
Der Verbindungsaufbau erfolgt möglicherweise nicht unverzüglich, da die WLAN- oder
möglicherweise deaktiviert, um den Akku zu schonen. Wenn die Uhr keine Verbindung zu einem
Netzwerk ist die Methode onAvailable()
der Instanz NetworkCallback
nicht
aufgerufen.
Sobald onAvailable()
aufgerufen wird, versucht das Gerät, die Verbindung mit dem
WLAN, bis NetworkCallback
veröffentlicht wird. Um die Akkulaufzeit zu verlängern,
lassen Sie den Callback los, wie im folgenden Beispiel gezeigt, wenn Sie keinen
WLAN.
Kotlin
connectivityManager.bindProcessToNetwork(null) connectivityManager.unregisterNetworkCallback(callback)
Java
connectivityManager.bindProcessToNetwork(null); connectivityManager.unregisterNetworkCallback(callback);
Aktivität zu WLAN-Einstellungen starten
Wenn ein WLAN angefordert wird, versucht das System, eine Verbindung zu einem gespeicherten Netzwerk herzustellen
falls eines konfiguriert ist und sich im Bereich befindet. Ist kein gespeichertes WLAN verfügbar,
Die Callback-Methode onAvailable
der Instanz NetworkCallback
wird nicht aufgerufen.
Wenn Sie ein Handler
für das Zeitlimit der Netzwerkanfrage verwenden, können Sie den
um ein WLAN-Netzwerk hinzuzufügen, wenn das Zeitlimit erreicht wird. Leiten Sie den Nutzer direkt an
die Aktivität zum Hinzufügen eines WLAN-Netzwerks mit dem folgenden Intent:
Kotlin
context.startActivity(Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"))
Java
context.startActivity(new Intent("com.google.android.clockwork.settings.connectivity.wifi.ADD_NETWORK_SETTINGS"));
Damit du die Aktivität zu den Einstellungen starten kannst, muss deine App die CHANGE_WIFI_STATE
haben
Berechtigung.
Hinweise zur Benutzeroberfläche
Wenn Ihre App für eine hohe Bandbreite eine Verbindung zu einem neuen WLAN erfordert muss dem Nutzer der Grund für die Verbindung klar sein, starten Sie die WLAN-Einstellungen. Nutzer nur darum bitten, ein neues WLAN hinzuzufügen wenn ein Netzwerk mit hoher Bandbreite benötigt wird. Nutzer nicht blockieren auf App-Funktionen zugreifen, die kein Netzwerk mit hoher Bandbreite erfordern.
Abbildung 1 zeigt eine Musik-App. Mit der App können Nutzende Musik auf einem Netzwerk mit geringerer Bandbreite und der Nutzer muss nur dann ein neues WLAN hinzufügen, wenn Musik herunterladen oder streamen möchten.
Abbildung 1: Eine Musik-App zum Herunterladen von Musik.
Überlegungen zu Energie- und Datennutzung
Um die Akkulaufzeit zu verlängern und die mobile Datennutzung zu minimieren, nicht wesentlichen Netzwerkaufgaben wie Analyseberichte oder Logerfassungen, bis das Wear OS-Gerät wieder eine Bluetooth- oder WLAN-Verbindung hergestellt hat statt über eine LTE- oder kostenpflichtige Verbindung.
Cloud-Messaging
Verwenden Sie zum Senden von Benachrichtigungen direkt Firebase Cloud Messaging (FCM).
Wear OS-spezifische APIs für den Netzwerkzugriff oder FCM sind nicht verfügbar. Beziehen Sie sich dabei auf die Dokumentation zum Herstellen einer Netzwerkverbindung und zum Cloud-Messaging
FCM funktioniert gut mit dem Stromsparmodus und wird zum Senden von Benachrichtigungen empfohlen. bis hin zu einer Uhr.
Für Nachrichten von FCM ein Registrierungstoken für ein Gerät erfassen wann deine Wear OS-App ausgeführt wird. Fügen Sie dann das Token als Teil des Ziels ein. wenn Ihr Server Nachrichten an den FCM REST-Endpunkt sendet. FCM sendet Nachrichten an das durch das Token identifizierte Gerät.
Eine FCM-Nachricht liegt im JSON-Format (JavaScript Object Notation) vor und kann eine oder beide der folgenden Nutzlasten:
- Benachrichtigungsnutzlast: Wenn eine Benachrichtigungsnutzlast von einem werden die Daten dem Benutzer direkt im Benachrichtigungsstream angezeigt. Wann? tippt der Nutzer auf die Benachrichtigung und die App wird gestartet.
- Datennutzlast: Wenn die Nutzlast eine Reihe von benutzerdefinierten Schlüssel- oder Wertpaaren hat. Die Nutzlast wird als Daten an deine Wear OS-App gesendet.
Weitere Informationen und Beispiele für Nutzlasten finden Sie unter Informationen zu FCM-Nachrichten.
Standardmäßig werden Benachrichtigungen von der Smartphone-App an die Smartwatch übertragen. Wenn Sie eine eigenständige Wear OS-App und zugehörige Smartphone-App, doppelte Benachrichtigungen auftreten können. Beispiel: Eine einzelne Benachrichtigung von FCM, die von einem der beiden Smartphone und einer Uhr angezeigt werden, können von beiden Geräten unabhängig voneinander angezeigt werden. Sie können können Sie dies verhindern, indem Sie Bridging APIs verwenden.
Hintergrunddienste verwenden
Damit Hintergrundaufgaben korrekt ausgeführt werden, für Stromsparmodus und App-Standby.
Wenn sich ein Display für längere Zeit ausschaltet oder in den Inaktivmodus wechselt, wird von einer bestimmten
kann auftreten und Hintergrundaufgaben können für bestimmte Zeiträume aufgeschoben werden.
Später, wenn das Gerät längere Zeit nicht steht, tritt ein regelmäßiger Stromsparmodus auf.
Anfragen mit der WorkManager
API planen, über die sich Ihre Anwendung registrieren kann
für die Codeausführung im Stromsparmodus.
Mit Einschränkungen planen
Mithilfe von Einschränkungen können Sie Anfragen so konfigurieren, dass der Akku geschont wird Leben. Wählen Sie eine oder mehrere der folgenden Einschränkungen aus, die in Ihre Anfragen:
Planen Sie eine Anfrage, die ein Netzwerk erfordert.
Geben Sie an, ob
NetworkType
CONNECTED
oderUNMETERED
ist.UNMETERED
ist für große Datenübertragungen,CONNECTED
für kleine Übertragungen.Planen Sie eine Anfrage während der Abrechnung.
Eine Anfrage planen, während das Gerät inaktiv ist. Dies ist nützlich für oder Synchronisierungen mit geringerer Priorität, Gerät wird geladen.
Weitere Informationen finden Sie unter Auswirkung von Einschränkungen auf regelmäßig überprüfen.