5G-Funktionen zu Ihrer App hinzufügen

Android 11 bietet neue 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 verbessern können, indem Sie Ihrer App 5G-spezifische Funktionen hinzufügen.

Für 5G entwickeln

Wenn Sie sich entscheiden, wie Sie 5G nutzen möchten, sollten Sie sich überlegen, welche Arten von Anwendungen Sie entwickeln möchten. So kann 5G Ihre App verbessern:

  • Aktuelle Anwendungen werden durch die höhere Geschwindigkeit und geringere Latenz von 5G automatisch schneller und besser.
  • Verbessern Sie die Nutzerfreundlichkeit, z. B. durch die Anzeige von 4K-Videos oder das Herunterladen von Spiele-Assets mit höherer Auflösung.
  • 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. Inhalte proaktiv herunterladen, die normalerweise für WLAN ohne Volumenbegrenzung reserviert sind.
  • Bieten Sie 5G-exklusive Funktionen an, die nur mit hohen Geschwindigkeiten und niedrigen Latenzen funktionieren.

5G-Funktionalität

In Android 11 wurden die folgenden Änderungen und Verbesserungen an der Funktionalität eingeführt:

Meteredness prüfen

Die NET_CAPABILITY_TEMPORARILY_NOT_METERED ist eine Funktion, die in Android 11 hinzugefügt wurde. Sie gibt anhand von Informationen, die von Mobilfunkanbietern bereitgestellt werden, an, ob das verwendete Netzwerk ein Netzwerk mit unbegrenztem Datenvolumen ist.

Das neue Flag wird zusammen mit NET_CAPABILITY_NOT_METERED verwendet. Das vorhandene Flag gibt an, ob ein Netzwerk immer nicht getaktet 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. 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 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 die App ausgeführt wird.

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

In den folgenden Abschnitten wird beschrieben, wie Sie Ihrer App die Prüfung der Abrechnungsart hinzufügen.

Netzwerk-Callback registrieren

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

registerDefaultNetworkCallback() führt dazu, dass der registrierte Callback sofort nach der Registrierung ausgelöst wird, sodass die App Informationen zum aktuellen Status erhält. Zukünftige Callbacks sind wichtig, damit die Apps angemessene Maßnahmen ergreifen können, wenn sich der Status von „nicht getaktet“ zu „getaktet“ oder umgekehrt ändert.

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 nicht getaktet behandeln.

Weitere Überlegungen

Beachten Sie bei der Verwendung dieser Funktion Folgendes:

  • Für die Verwendung des Flags NET_CAPABILITY_TEMPORARILY_NOT_METERED muss Ihre App mit dem Android 11-SDK kompiliert worden sein.

  • Die NET_CAPABILITY_NOT_METERED-Funktion ist in einem Netzwerk dauerhaft verfügbar. Ein Netzwerk mit dieser Funktion wird automatisch getrennt, wenn die Funktion verloren geht (das Netzwerk wird als kostenpflichtig eingestuft).

  • Im Gegensatz dazu kann sich die NET_CAPABILITY_TEMPORARILY_NOT_METERED in einem Netzwerk ohne Trennung der Verbindung ändern. Daher müssen Apps auf den onCapabilitiesChanged()-Callback reagieren, um zu verarbeiten, wenn das Netzwerk wieder in den Status mit beschränkter Datennutzung 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 auf Rückrufen basierenden API-Aufruf erkennen, 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-Netz (eigenständig) oder ein NSA-Netz (nicht eigenständig) handelt.

Einige Anwendungsfälle für diesen API-Aufruf:

  • 5G-Branding in Ihrer App, um hervorzuheben, dass Sie ein einzigartiges 5G-Erlebnis bieten.

  • Aktivierung einer einzigartigen 5G-Funktion in der App nur bei Verbindung mit einem 5G-Netzwerk. Sie sollten diese Statusprüfung mit der Prüfung auf Abrechnung 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 des Android SDK-Emulators verwenden.

5G erkennen

Rufen Sie TelephonyManager.listen() mit dem Parameter LISTEN_DISPLAY_INFO_CHANGED auf, 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, wenn der Mobilfunkanbieter 5G als RAT für sein mmWave-Netzwerk anzeigt. 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, mit dem Sie die Abrechnung nach Nutzung bestimmen. Mit diesem Objekt können Sie Bandbreitenschätzungen abrufen.

Die Zuverlässigkeit und Genauigkeit der Bandbreitenschätzmethoden getLinkDownstreamBandwidthKbps() und getLinkUpstreamBandwidthKbps() werden in Android 11 durch Upgrades der Framework-Unterstützung und Fehlerkorrekturen für Plattform/Modem zur Anpassung an 5G verbessert.

Die Bandbreitenstandards beziehen sich nur auf den App-Start. Das sollte Ihnen beim Szenario „Start im Leerlauf“ helfen. Ihre 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 bereitzustellenden Videos basierend auf der Bandbreitenschätzung beim Start auswählen. Prüfen Sie die Schätzungen weiterhin, während Ihre Nutzer die App verwenden. Passen Sie das Verhalten Ihrer App entsprechend an, wenn sich der Verbindungstyp und die Verbindungsstärke ändern.