Android 11 dodaje funkcje obsługujące 5G w Twoich 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.
Dla 5G
Decydując się na korzystanie z sieci 5G, zastanów się, jakie wrażenia chcesz tworzyć. Oto kilka sposobów, w jakie 5G może ulepszyć aplikację:
- Dzięki zmniejszeniu szybkości i opóźnień sieci 5G automatycznie zwiększasz szybkość i jakość obsługi.
- poprawić wrażenia użytkowników, np. wyświetlając filmy w rozdzielczości 4K lub pobierając zasoby gry w wyższej rozdzielczości;
- Gdy potwierdzisz, że zwiększone użycie danych nie będzie kosztować użytkownika, uwzględnij funkcje normalnie udostępniane tylko przez Wi-Fi, np. proaktywnie pobieraj treści zwykle zarezerwowane dla Wi-Fi bez pomiaru.
- Zapewniają wyjątkowe funkcje 5G, które działają tylko przy dużej szybkości i małym opóźnieniu.
Funkcjonalność 5G
Android 11 wprowadza te zmiany i ulepszenia funkcji:
Sprawdź pomiar wykorzystania limitu
NET_CAPABILITY_TEMPORARILY_NOT_METERED
to funkcja dodana w Androidzie 11, która informuje, czy używana sieć nie jest mierzona na podstawie informacji dostarczanych przez operatorów komórkowych.
Nowa flaga będzie używana razem z NET_CAPABILITY_NOT_METERED
.
Istniejąca flaga wskazuje, czy sieć zawsze jest bez pomiaru użycia danych i dotyczy zarówno połączeń Wi-Fi, jak i komórkowych.
Różnica między tymi dwoma flagami jest taka, że NET_CAPABILITY_TEMPORARILY_NOT_METERED
może się zmienić 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 system operacyjny nie zgłasza tej flagi. W przypadku aplikacji na Androida 10 ta flaga może być dostępna w zależności od urządzenia.
Gdy ustalisz, że w bieżącej sieci nie ma pomiaru użycia danych tymczasowo lub na stałe, 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 aktywnie pobierać treści.
Poniżej znajdziesz instrukcje dodawania do aplikacji sprawdzania pomiaru wykorzystania limitu.
Rejestrowanie wywołania zwrotnego sieci
Zarejestruj wywołanie zwrotne sieci za pomocą polecenia ConnectivityManager.registerDefaultNetworkCallback()
, aby usłyszeć informację o zmianie parametru NetworkCapabilities
. Możesz wykryć zmiany w NetworkCapabilities
, zastępując metodę onCapabilitiesChanged()
w NetworkCallback
.
registerDefaultNetworkCallback()
powoduje, że zarejestrowane wywołanie zwrotne uruchamia się natychmiast po zarejestrowaniu, dostarczając aplikacji informacje o bieżącym stanie. Przyszłe wywołania zwrotne mają kluczowe znaczenie dla podejmowania przez aplikacje odpowiednich działań, gdy stan zmienia się z bez pomiaru na sieć z pomiarem użycia danych lub na odwrót.
Sprawdź pomiar wykorzystania limitu
Użyj obiektu NetworkCapabilites
otrzymanego w wywołaniu zwrotnym sieci, aby sprawdzić dane wyjściowe tego kodu:
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 true (prawda), możesz traktować sieć jako bez pomiaru.
Dodatkowe uwarunkowania
Podczas korzystania z tej funkcji pamiętaj o tych kwestiach:
Użycie flagi
NET_CAPABILITY_TEMPORARILY_NOT_METERED
wymaga skompilowania aplikacji pod kątem pakietu SDK Androida 11.Możliwość
NET_CAPABILITY_NOT_METERED
jest stała w sieci. Sieć, która obsługuje tę funkcję, zostanie rozłączona automatycznie, jeśli straci możliwość korzystania (z pomiarem użycia danych).Z kolei
NET_CAPABILITY_TEMPORARILY_NOT_METERED
może się zmienić w sieci bez jej odłączenia. Dlatego aplikacje muszą nasłuchiwać wywołania zwrotnegoonCapabilitiesChanged()
, gdy sieć powróci do stanu z pomiarem użycia danych (czyli straci możliwośćNET_CAPABILITY_TEMPORARILY_NOT_METERED
).W sieci nie mogą znajdować się jednocześnie
NET_CAPABILITY_NOT_METERED
iNET_CAPABILITY_TEMPORARILY_NOT_METERED
.
Wykrywanie 5G
Od Androida 11 możesz sprawdzać, czy urządzenie jest połączone z siecią 5G, korzystając z wywołania interfejsu API opartego na wywołaniach zwrotnych. Możesz sprawdzić, czy połączenie jest siecią 5G NR (samodzielną) czy NSA (niesamodzielną).
Oto niektóre zastosowania tego wywołania interfejsu API:
Wyświetlanie marki 5G w aplikacji, aby podkreślić, że oferujesz wyjątkowe funkcje 5G.
Aktywowanie wyjątkowej funkcji 5G w aplikacji tylko w przypadku sieci 5G. Łączenie tej funkcji z kontrolą stanu należy połączyć ze sprawdzaniem wykorzystania limitu.
Śledzenie połączeń 5G na potrzeby analiz.
Aby przetestować wykrywanie sieci 5G bez urządzenia 5G, możesz użyć funkcji dodanych do emulatora pakietu Android SDK.
Wykrywanie sieci 5G
Wywołaj TelephonyManager.listen()
i przekaż LISTEN_DISPLAY_INFO_CHANGED
, by określić, czy użytkownik ma połączenie z siecią 5G. Zastąp metodę onDisplayInfoChanged()
, by określić typ sieci używanej do wyświetlania. Wyjątkiem jest sytuacja, w której operator wyświetla 5G jako RAT w swojej sieci mmWave, zwracana jest wartość OVERRIDE_NETWORK_TYPE_NR_NSA
.
W tabeli poniżej znajdziesz sieci odpowiadające wartościom:
Typ zwrotu | Sieć |
---|---|
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO |
Advanced Pro LTE (5Ge) |
OVERRIDE_NETWORK_TYPE_NR_NSA |
NR (5G) w sieciach 5G Sub-6 |
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE |
(5G+/5G UW) w sieciach 5G mmWave |
Szacowana przepustowość
Oszacowanie przepustowości używa obiektu NetworkCapabilities
, z którym pracujesz, do określania pomiaru wykorzystania. Za pomocą tego obiektu możesz uzyskać szacunkową przepustowość.
Niezawodność i dokładność metod szacowania przepustowości getLinkDownstreamBandwidthKbps()
i getLinkUpstreamBandwidthKbps()
poprawiają się w Androidzie 11 dzięki uaktualnieniom obsługi platformy oraz poprawkom błędów związanych z platformą/modem tak, aby spełniały wymagania 5G.
Wartości domyślne przepustowości podają tylko wskazówki dotyczące uruchamiania aplikacji. Pomoże Ci to w scenariuszu „uruchamiania w przypadku bezczynności”. Aplikacja powinna mierzyć to, co widzi, gdy użytkownicy zaczną z niej korzystać, i dynamicznie dostosowywać sposób jej przesyłania. Możesz na przykład wybrać rozdzielczość wideo na podstawie szacowanej przepustowości podczas uruchamiania. Sprawdzaj szacunkowe wartości, gdy użytkownicy korzystają z aplikacji. Gdy typ i siła połączenia się zmieni, odpowiednio dostosuj działanie aplikacji.