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 Datenvolumenbeschrä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 denonCapabilitiesChanged()
-Callback warten, um zu reagieren, wenn das Netzwerk zum getakteten Status zurückkehrt (dieNET_CAPABILITY_TEMPORARILY_NOT_METERED
-Funktion verliert).Ein Netzwerk kann nicht gleichzeitig
NET_CAPABILITY_NOT_METERED
undNET_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- (nicht eigenständiges) Netzwerk 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.