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
Wenn Sie entscheiden, wie Sie 5G nutzen möchten, überlegen Sie, welche Art von Erlebnissen Sie entwickeln 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-Funktionalität
Mit Android 11 wurden die folgenden Funktionsänderungen und -verbesserungen eingeführt:
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 lautet, dass NET_CAPABILITY_TEMPORARILY_NOT_METERED
sich ä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. Für Apps mit Android 10 kann dieses Flag verfügbar sein, je nachdem, auf welchem Gerät sie 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 wird beschrieben, wie Sie Messmethoden zur Messung Ihrer App 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 Ihrer 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 Callbacks sind entscheidend, damit die Anwendungen entsprechende Maßnahmen ergreifen können, wenn sich der Status von „nicht getaktet“ zu „messen“ oder umgekehrt ändert.
Auf Zählerung prüfen
Verwenden Sie das Objekt NetworkCapabilites
, das Sie in einem Netzwerk-Callback erhalten, 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 Arbeit mit 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.
Dieser API-Aufruf kann unter anderem für Folgendes verwendet werden:
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. Sie sollten diese Statusprüfung mit Prüfung auf Meteredness 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 besteht darin, dass, wenn der Mobilfunkanbieter 5G als RAT für sein mmWave-Netzwerk angibt, OVERRIDE_NETWORK_TYPE_NR_NSA
zurückgegeben wird.
In der folgenden Tabelle sind die Netzwerke aufgeführt, die diesen 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 erhalten.
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 das Streamingverhalten dynamisch anpassen. Sie können beispielsweise die Auflösung des Videos auswählen, das basierend auf der Bandbreitenschätzung beim Start bereitgestellt werden soll. Prüfen Sie die Schätzungen weiterhin, während Nutzer die App verwenden. Passen Sie das Verhalten Ihrer App entsprechend an, wenn sich Typ und Stärke der Verbindung ändern.