Android 11 dodaje funkcje obsługujące 5G w aplikacjach. W tym temacie opisujemy tę funkcję i podajemy przykłady, jak dodanie do aplikacji funkcji związanych z 5G może poprawić komfort korzystania z niej.
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 są zwykle zarezerwowane dla nielimitowanej transmisji danych przez 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_METERED
to funkcja dodana w Androidzie 11, która na podstawie informacji od operatorów komórkowych informuje, czy sieć, z której korzystasz, jest nielimitowana.
Nowy znacznik jest używany obok NET_CAPABILITY_NOT_METERED
.
Istniejąca flaga wskazuje, czy sieć jest zawsze nielimitowana, 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 lub 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 bezpłatna, 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 zgodności z zasadami.
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.
Sprawdź, czy jest to licznik
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łaniaonCapabilitiesChanged()
, 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_METERED
iNET_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. 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 korzystasz z sieci 5G. Należy połączyć to sprawdzenie stanu z sprawdzaniem, czy urządzenie jest objęte pomiarem.
ś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()
, podając LISTEN_DISPLAY_INFO_CHANGED
, aby sprawdzić, 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, zwrócona zostanie wartość OVERRIDE_NETWORK_TYPE_NR_NSA
.
Poniższa tabela zawiera 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
Szacowanie przepustowości używa obiektu NetworkCapabilities
, z którym pracujesz podczas określania pomiaru. 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 podczas uruchamiania. 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.