Dodawanie funkcji 5G do aplikacji

Android 11 dodaje funkcje obsługujące 5G w aplikacjach. W tym artykule omawiamy ich funkcje i pokazujemy, jak dodanie do aplikacji funkcji związanych z 5G może poprawić wrażenia użytkowników.

Tworzenie aplikacji na 5G

Decydując, jak wykorzystać 5G, zastanów się, jakiego rodzaju wrażenia chcesz stworzyć. Oto kilka sposobów, w jakie technologia 5G może zwiększyć możliwości Twojej aplikacji:

  • Automatyczne szybsze i lepsze działanie usług dzięki zwiększeniu szybkości i obniżeniu opóźnień w sieci 5G.
  • Ulepszenie wrażeń użytkownika, np. wyświetlanie filmów w rozdzielczości 4K lub pobieranie zasobów gry w wyższej rozdzielczości.
  • Po potwierdzeniu, że zwiększone użycie danych nie będzie wiązać się z dodatkowymi kosztami dla użytkownika, uwzględnij funkcje dostępne zwykle tylko w sieci Wi-Fi, takie jak proaktywne pobieranie treści, które zwykle są zarezerwowane dla nielimitowanej sieci Wi-Fi.
  • Zapewnij wrażenia charakterystyczne dla 5G, które działają tylko przy dużych szybkościach i małym opóźnieniu.

Funkcja 5G

Android 11 wprowadza te zmiany i ulepszenia funkcji:

Sprawdzanie pomiaru

NET_CAPABILITY_TEMPORARILY_NOT_METEREDto funkcja dodana w Androidzie 11, która na podstawie informacji od operatorów komórkowych informuje, czy sieć, z której korzystasz, jest nielimitowana.

Nowa flaga będzie używana razem z NET_CAPABILITY_NOT_METERED. Istniejąca flaga wskazuje, czy sieć jest zawsze bezpłatna, i dotyczy zarówno połączeń Wi-Fi, jak i komórkowych.

Różnica między tymi flagami polega na tym, że NET_CAPABILITY_TEMPORARILY_NOT_METERED może się zmieniać bez zmiany typu sieci. Aplikacje kierowane na Androida 11 mogą używać flagi NET_CAPABILITY_TEMPORARILY_NOT_METERED. Na urządzeniach z Androidem 9 i starszym flaga nie będzie raportowana przez system operacyjny. W przypadku aplikacji działających na Androidzie 10 ten parametr może być dostępny w zależności od urządzenia.

Gdy ustalisz, że bieżąca sieć jest tymczasowo lub na stałe objęta nielimitowanym transferem, możesz wyświetlać treści w wyższej rozdzielczości (np. filmy w jakości 4K), przesyłać dzienniki, tworzyć kopie zapasowe plików i proaktywnie pobierać treści.

W następnych sekcjach znajdziesz instrukcje dodawania do aplikacji sprawdzania dostępności.

Rejestrowanie wywołania zwrotnego sieci

Zarejestruj się na stronie ConnectivityManager.registerDefaultNetworkCallback(), aby otrzymywać powiadomienia o zmianach w sieci NetworkCapabilities. Zmiany w NetworkCapabilities możesz wykryć, zastępując metodę onCapabilitiesChanged() w pliku NetworkCallback.

registerDefaultNetworkCallback() powoduje, że zarejestrowane wywołanie zwrotne zostanie wywołane natychmiast po zarejestrowaniu, przekazując aplikacji informacje o bieżącym stanie. Przyszłe wywołania zwrotne są niezbędne, aby aplikacje mogły podjąć odpowiednie działania, gdy stan zmieni się z nielimitowanego na limitowany lub odwrotnie.

Sprawdzanie, czy reklama jest objęta pomiarem

Aby sprawdzić dane wyjściowe kodu:NetworkCapabilites

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)

Jeśli wartość to prawda, sieć można traktować jako nielimitowaną.

Dodatkowe uwagi

Podczas korzystania z tej funkcji pamiętaj o tych kwestiach:

  • Aby użyć parametru NET_CAPABILITY_TEMPORARILY_NOT_METERED, musisz skompilować aplikację z użyciem pakietu SDK Androida 11.

  • Funkcja NET_CAPABILITY_NOT_METERED jest trwała w przypadku sieci. Sieć z tą funkcją rozłączy się automatycznie, jeśli utraci tę funkcję (zacznie działać w trybie taryfowanym).

  • Natomiast NET_CAPABILITY_TEMPORARILY_NOT_METERED może się zmieniać w sieci bez rozłączania. Dlatego aplikacje muszą nasłuchiwać wywołania onCapabilitiesChanged(), aby obsłużyć przypadek, gdy sieć powraca do stanu pomiarowego (tracąc możliwość NET_CAPABILITY_TEMPORARILY_NOT_METERED).

  • Sieć nie może mieć jednocześnie roli NET_CAPABILITY_NOT_METEREDNET_CAPABILITY_TEMPORARILY_NOT_METERED.

Wykrywanie sieci 5G

Począwszy od Androida 11 możesz wykryć, czy urządzenie jest połączone z siecią 5G, za pomocą wywołania interfejsu API z powrotu wywołania. Możesz sprawdzić, czy połączenie jest siecią 5G NR (niezależną) czy NSA (niesamodzielną).

Oto niektóre zastosowania tego wywołania interfejsu API:

  • Wyświetlanie w aplikacji elementów marki 5G, aby podkreślić, że oferujesz wyjątkowe wrażenia związane z tą technologią.

  • Aktywowanie w aplikacji wyjątkowych funkcji 5G tylko wtedy, gdy użytkownik jest w sieci 5G. Łączenie tej funkcji z kontrolą stanu należy połączyć ze sprawdzaniem wykorzystania limitu.

  • śledzenie połączeń 5G na potrzeby analityki.

Aby przetestować wykrywanie sieci 5G bez urządzenia obsługującego tę technologię, możesz skorzystać z funkcji dodanych do emulatora Android SDK.

Wykrywanie sieci 5G

Zadzwoń do TelephonyManager.listen(), przekazując LISTEN_DISPLAY_INFO_CHANGED, aby określić, czy użytkownik ma połączenie z siecią 5G. Zastąp metodę onDisplayInfoChanged(), aby określić typ sieci używanej do wyświetlania reklam. Jedynym wyjątkiem jest to, że jeśli operator zdecyduje się wyświetlić 5G jako RAT dla sieci mmWave, zwracana jest wartość OVERRIDE_NETWORK_TYPE_NR_NSA.

W tabeli poniżej podano sieci odpowiadające tym wartościom:

Typ zwracanej wartości Sieć
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO Advanced Pro LTE (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA NR (5G) w przypadku sieci 5G Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) w przypadku sieci 5G mmWave

Oszacowanie przepustowości

Oszacowanie przepustowości używa obiektu NetworkCapabilities, którego używasz do określania pomiaru wykorzystania. Możesz uzyskać szacowane wartości przepustowości za pomocą tego obiektu.

niezawodność i dokładność metod szacowania przepustowości getLinkDownstreamBandwidthKbps() i getLinkUpstreamBandwidthKbps() w Androidzie 11 poprawiły się dzięki uaktualnionym funkcjom obsługi frameworku oraz poprawkom błędów platformy i modemu, które umożliwiają obsługę 5G.

Domyślne wartości przepustowości podają wskazówki tylko na temat uruchamiania aplikacji. Pomoże Ci to w przypadku scenariusza „uruchamianie podczas bezczynności”. Gdy użytkownicy zaczną korzystać z aplikacji, powinna ona mierzyć to, co widzi, i dynamicznie dostosowywać zachowanie strumienia. Możesz na przykład wybrać rozdzielczość filmu na podstawie oszacowania przepustowości na początku. Postępując zgodnie z tymi wytycznymi, sprawdzaj szacowane wartości, gdy użytkownicy korzystają z aplikacji. Gdy zmienia się typ i siła połączenia, dostosuj zachowanie aplikacji.