Android 11 bietet zusätzliche Funktionen zur Unterstützung von 5G in deinen Apps. In diesem Artikel werden die entsprechenden Funktionen beschrieben. Außerdem erhältst du einen Überblick darüber, wie du deine App mit 5G-spezifischen Funktionen verbessern kannst.
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 unter anderem auf folgende Weise verbessern:
- Dank der Geschwindigkeits- und Latenzverbesserungen von 5G werden aktuelle Funktionen automatisch schneller und besser.
- Verbessern Sie die Nutzererfahrung, indem Sie z. B. 4K-Videos einblenden oder Spiele-Assets mit höherer Auflösung herunterladen.
- Nachdem Sie sich vergewissert haben, dass die erhöhte Datennutzung dem Nutzer keine Kosten verursacht, schließen Sie auch Funktionen ein, die normalerweise nur über WLAN verfügbar sind, z. B. das proaktive Herunterladen von Inhalten, die normalerweise für nicht getaktetes WLAN reserviert sind.
- Bieten Sie einzigartige Möglichkeiten für 5G, die nur bei hoher Geschwindigkeit und niedriger Latenz funktionieren.
5G-Funktionalität
Mit Android 11 wurden die folgenden Funktionsänderungen und -verbesserungen eingeführt:
Messung des Messergebnisses prüfen
NET_CAPABILITY_TEMPORARILY_NOT_METERED
ist eine Funktion, die in Android 11 hinzugefügt wurde. Sie gibt anhand von Daten von Mobilfunkanbietern an, ob das verwendete Netzwerk kostenlos ist.
Das neue Flag wird zusammen mit NET_CAPABILITY_NOT_METERED
verwendet.
Das vorhandene Flag gibt an, ob ein Netzwerk immer kostenlos ist, und 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. Apps, die auf Android 11 ausgerichtet sind, können das Flag NET_CAPABILITY_TEMPORARILY_NOT_METERED
verwenden. Auf Geräten mit Android 9 und niedriger wird das Flag nicht vom Betriebssystem 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 nicht kostenpflichtig 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 für einen Netzwerk-Callback mit ConnectivityManager.registerDefaultNetworkCallback()
, um zu hören, wenn sich NetworkCapabilities
ändert. Sie können Änderungen an NetworkCapabilities
erkennen, indem Sie die Methode onCapabilitiesChanged()
in Ihrer NetworkCallback
überschreiben.
registerDefaultNetworkCallback()
führt dazu, dass der registrierte Callback sofort ausgelöst wird, wenn er registriert wird. Dabei werden der App Informationen zum aktuellen Status bereitgestellt. Zukünftige Callbacks sind entscheidend, damit die Anwendungen entsprechende Maßnahmen ergreifen können, wenn der Status von „nicht getaktet“ zu „messen“ oder umgekehrt wechselt.
Auf Messung 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 „true“ ist, können Sie das Netzwerk als kostenlos behandeln.
Zusätzliche Überlegungen
Beachten Sie bei der Arbeit mit dieser Funktion Folgendes:
Wenn du das Flag
NET_CAPABILITY_TEMPORARILY_NOT_METERED
verwenden möchtest, musst du deine App mit dem Android 11 SDK kompilieren.Die
NET_CAPABILITY_NOT_METERED
-Funktion ist dauerhaft in einem Netzwerk verfügbar. Ein Netzwerk mit dieser Funktion wird automatisch getrennt, wenn es die Funktion verliert, also kostenpflichtig wird.Im Gegensatz dazu kann sich
NET_CAPABILITY_TEMPORARILY_NOT_METERED
in einem Netzwerk ändern, ohne die Verbindung zu trennen. Daher müssen Anwendungen auf denonCapabilitiesChanged()
-Callback warten, um zu verarbeiten, ob das Netzwerk in den gemessenen Status zurückkehrt (also nicht mehr dieNET_CAPABILITY_TEMPORARILY_NOT_METERED
-Funktion hat).Ein Netzwerk kann nicht gleichzeitig
NET_CAPABILITY_NOT_METERED
undNET_CAPABILITY_TEMPORARILY_NOT_METERED
haben.
5G-Erkennung
Ab Android 11 können Sie mithilfe eines Callback-basierten API-Aufrufs erkennen, ob das Gerät mit einem 5G-Netzwerk verbunden ist. Sie können prüfen, ob die Verbindung ein 5G-NR-Netzwerk (eigenständig) oder ein nicht eigenständiges NSA-Netzwerk ist.
Dieser API-Aufruf kann unter anderem für Folgendes verwendet werden:
Durch das Präsentieren des 5G-Brandings in deiner App kannst du darauf hinweisen, dass du ein einzigartiges 5G-Erlebnis bietet.
Ein einzigartiges 5G-Erlebnis in der App nur in einem 5G-Netzwerk aktivieren. Sie sollten diese Statusprüfung mit Prüfung auf Meteredness kombinieren.
Nachverfolgen von 5G-Verbindungen zu Analysezwecken
Wenn Sie die 5G-Erkennung ohne 5G-Gerät testen möchten, können Sie Funktionen verwenden, die dem Android SDK-Emulator hinzugefügt wurden.
5G erkennen
Rufen Sie TelephonyManager.listen()
auf und übergeben Sie LISTEN_DISPLAY_INFO_CHANGED
, um festzustellen, ob der Nutzer eine 5G-Netzwerkverbindung hat. Überschreiben Sie die Methode onDisplayInfoChanged()
, um den Netzwerktyp zu ermitteln, der für Anzeigezwecke verwendet wird. 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
Bei der Bandbreitenschätzung wird das NetworkCapabilities
-Objekt verwendet, mit dem Sie zur Bestimmung des Messwerts arbeiten. Mit diesem Objekt können Sie Bandbreitenschätzungen abrufen.
Die Zuverlässigkeit und Genauigkeit der Methoden zur Bandbreitenschätzung getLinkDownstreamBandwidthKbps()
und getLinkUpstreamBandwidthKbps()
haben sich aufgrund von Upgrades der Framework-Unterstützung und Fehlerkorrekturen für Plattform-/Modem zur Unterstützung von 5G in Android 11 verbessert.
Die Standardeinstellungen für die Bandbreite helfen nur beim Start von Apps. Dies sollte Ihnen beim Szenario „Start bei Inaktivität“ helfen. Ihre Anwendung sollte messen, was sie sieht, nachdem Nutzer mit der App interagiert haben, 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.