5G-Funktionen zu Ihrer App hinzufügen

Android 11 bietet Funktionen zur Unterstützung von 5G in Ihren Apps. In diesem Thema werden die Funktionen beschrieben und Sie erhalten einen Überblick darüber, wie Sie die Nutzerfreundlichkeit Ihrer App durch 5G-spezifische Funktionen verbessern können.

Für 5G entwickeln

Überlegen Sie sich bei der Entscheidung, wie Sie 5G einsetzen möchten, welche Art von Nutzererfahrung Sie schaffen möchten. 5G kann Ihre App auf folgende Weise verbessern:

  • Durch die Geschwindigkeits- und Latenzverbesserungen von 5G werden aktuelle Funktionen automatisch schneller und besser.
  • Sie können die Nutzerfreundlichkeit verbessern, indem Sie beispielsweise 4K-Videos anzeigen oder Spiel-Assets mit höherer Auflösung herunterladen.
  • Nachdem Sie bestätigt haben, dass die erhöhte Datennutzung für den Nutzer keine Kosten verursacht, können Sie Funktionen einbinden, die normalerweise nur über WLAN verfügbar sind, z. B. den proaktiven Download von Inhalten, die normalerweise für unbegrenztes WLAN reserviert sind.
  • Bieten Sie Funktionen, die nur mit 5G möglich sind und nur bei hoher Geschwindigkeit und niedriger Latenz funktionieren.

5G-Funktionen

Android 11 enthält die folgenden funktionalen Änderungen und Verbesserungen:

Gemessene Daten prüfen

Das Symbol NET_CAPABILITY_TEMPORARILY_NOT_METERED ist eine Funktion, die in Android 11 hinzugefügt wurde. Sie gibt an, ob das von Ihnen verwendete Netzwerk unbegrenzt nutzbar ist, basierend auf Informationen von Mobilfunkanbietern.

Das neue Flag wird zusammen mit NET_CAPABILITY_NOT_METERED verwendet. Das vorhandene Flag gibt an, ob ein Netzwerk immer ohne Volumenbeschränkung ist. Es gilt sowohl für WLAN- als auch für Mobilfunkverbindungen.

Der Unterschied zwischen den beiden Flags besteht darin, dass sich NET_CAPABILITY_TEMPORARILY_NOT_METERED ändern kann, ohne dass sich der Netzwerktyp ändert. Für Apps, die auf Android 11 ausgerichtet sind, kann das Flag NET_CAPABILITY_TEMPORARILY_NOT_METERED verwendet werden. Auf Geräten mit Android 9 und niedriger wird das Flag vom Betriebssystem nicht gemeldet. Bei Apps, die unter Android 10 ausgeführt werden, ist dieses Flag möglicherweise verfügbar, je nach Gerät, auf dem es ausgeführt wird.

Sobald Sie festgestellt haben, dass das aktuelle Netzwerk vorübergehend oder dauerhaft unbegrenzt ist, können Sie Inhalte mit höherer Auflösung (z. B. 4K-Videos) anzeigen, Protokolle hochladen, Dateien sichern und proaktiv Inhalte herunterladen.

In den folgenden Abschnitten erfahren Sie, wie Sie Ihrer App eine Prüfung der Begrenzung hinzufügen.

Netzwerk-Callback registrieren

Registriere dich mit ConnectivityManager.registerDefaultNetworkCallback() für einen Netzwerk-Callback, um benachrichtigt zu werden, wenn sich NetworkCapabilities ändert. Sie können Änderungen an NetworkCapabilities erkennen, indem Sie die Methode onCapabilitiesChanged() in NetworkCallback überschreiben.

registerDefaultNetworkCallback() bewirkt, dass der registrierte Callback sofort nach der Registrierung ausgelöst wird und der App Informationen zum aktuellen Status zur Verfügung stellt. Zukünftige Rückrufe sind wichtig, damit die Apps entsprechende Maßnahmen ergreifen können, wenn sich der Status von „ohne Beschränkung“ zu „mit Beschränkung“ oder umgekehrt ändert.

Auf Zählerung prüfen

Verwende das NetworkCapabilites-Objekt, das du in einem Netzwerk-Callback erhältst, um die Ausgabe des folgenden Codes zu prüfen:

Kotlin

NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) ||
  NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)

Java

NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) ||
  NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)

Wenn der Wert „wahr“ ist, können Sie das Netzwerk als unbegrenzt behandeln.

Weitere Überlegungen

Beachten Sie bei der Verwendung dieser Funktion Folgendes:

  • Wenn Sie das Flag NET_CAPABILITY_TEMPORARILY_NOT_METERED verwenden möchten, müssen Sie Ihre App mit dem Android 11 SDK kompiliert haben.

  • Die NET_CAPABILITY_NOT_METERED-Funktion ist in einem Netzwerk dauerhaft aktiv. Bei einem Netzwerk mit dieser Funktion wird die Verbindung automatisch getrennt, wenn die Funktion nicht mehr verfügbar ist (wenn also die Verbindung getaktet wird).

  • Im Gegensatz dazu kann sich NET_CAPABILITY_TEMPORARILY_NOT_METERED in einem Netzwerk ohne Unterbrechung ändern. Daher müssen Apps auf den onCapabilitiesChanged()-Callback warten, um zu reagieren, wenn das Netzwerk zum getakteten Status zurückkehrt (die NET_CAPABILITY_TEMPORARILY_NOT_METERED-Funktion verliert).

  • Ein Netzwerk kann nicht gleichzeitig NET_CAPABILITY_NOT_METERED und NET_CAPABILITY_TEMPORARILY_NOT_METERED haben.

5G-Erkennung

Ab Android 11 können Sie mit einem callbackbasierten API-Aufruf feststellen, ob das Gerät mit einem 5G-Netzwerk verbunden ist. Sie können prüfen, ob es sich bei der Verbindung um ein 5G NR- (eigenständiges) oder NSA-Netzwerk (nicht eigenständig) handelt.

Beispiele für die Verwendung dieses API-Aufrufs:

  • Sie können 5G-Branding in Ihrer App anzeigen, um hervorzuheben, dass Sie eine einzigartige 5G-Nutzung anbieten.

  • Die App kann nur dann in einem 5G-Netzwerk genutzt werden, wenn 5G aktiviert ist. Du solltest diese Statusprüfung mit der Prüfung auf die Begrenzung kombinieren.

  • 5G-Verbindungen zu Analysezwecken im Blick behalten

Wenn Sie die 5G-Erkennung ohne 5G-Gerät testen möchten, können Sie die Funktionen verwenden, die dem Android SDK-Emulator hinzugefügt wurden.

5G erkennen

Rufe TelephonyManager.listen() auf und gib LISTEN_DISPLAY_INFO_CHANGED ein, um festzustellen, ob der Nutzer eine 5G-Netzwerkverbindung hat. Überschreiben Sie die Methode onDisplayInfoChanged(), um den für die Anzeige verwendeten Netzwerktyp zu bestimmen. Eine Ausnahme ist, wenn der Mobilfunkanbieter 5G als RAT für sein mmWave-Netzwerk angibt. In diesem Fall wird OVERRIDE_NETWORK_TYPE_NR_NSA zurückgegeben.

In der folgenden Tabelle sind die Netzwerke aufgeführt, die den Werten entsprechen:

Rückgabetyp Netzwerk
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO Advanced pro LTE (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA NR (5G) für 5G Sub-6-Netzwerke
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) für 5G mmWave-Netzwerke

Bandbreitenschätzung

Für die Bandbreitenschätzung wird das NetworkCapabilities-Objekt verwendet, das Sie bei der Bestimmung der Bemessung verwenden. Mit diesem Objekt können Sie Bandbreitenschätzungen abrufen.

Die Zuverlässigkeit und Genauigkeit der Methoden zur Bandbreitenschätzung getLinkDownstreamBandwidthKbps() und getLinkUpstreamBandwidthKbps() wurden in Android 11 durch Upgrades der Framework-Unterstützung und Fehlerkorrekturen für Plattform/Modem verbessert, um 5G zu unterstützen.

Die Standardwerte für die Bandbreite dienen nur als Orientierungshilfe für den App-Start. Dies sollte Ihnen beim Szenario „Start bei Inaktivität“ helfen. Deine App sollte messen, was sie sieht, sobald Nutzer mit der App interagieren, und ihr Streamingverhalten dynamisch anpassen. So können Sie beispielsweise die Videoauflösung anhand der Bandbreitenschätzung beim Starten auswählen. Prüfen Sie die Schätzungen weiter, während Ihre Nutzer die App verwenden. Wenn sich der Verbindungstyp und die Verbindungsstärke ändern, passen Sie das Verhalten Ihrer App entsprechend an.