Auf eigenständigen Geräten direkt über ein Netzwerk kommunizieren

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.

Musik wird heruntergeladen

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 oder UNMETERED 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.