5G-Funktionen für Ihre App

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 den onCapabilitiesChanged()-Callback warten, um zu verarbeiten, ob das Netzwerk in den gemessenen Status zurückkehrt (also nicht mehr die NET_CAPABILITY_TEMPORARILY_NOT_METERED-Funktion hat).

  • Ein Netzwerk kann nicht gleichzeitig NET_CAPABILITY_NOT_METERED und NET_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.