Pojazdy coraz częściej polegają na połączeniach, aby zarządzać stale rosnącą listą przypadków użycia żądanych przez producentów OEM i właścicieli pojazdów, co przełożyło się ilość danych i powiązane koszty. Użyj wyboru sieci dla poszczególnych aplikacji (PANS) do kierowania ruchu z określonych aplikacji w sieciach opłaconych przez OEM.
Dzięki numerowi PANS można jednocześnie zarządzać ilością i kosztami użycia danych solidnego, bezpiecznego i połączonego z siecią auta. Numery PAN:
- Obejmuje nowy interfejs API dodany do
ConnectivityManager
dostępnych tylko w przypadku urządzeń samochodowych. - Udostępnia zaktualizowany interfejs API sugestii Wi-Fi (patrz Interfejs API sugestii Wi-Fi na potrzeby połączeń z internetem) , aby uwzględnić obsługę dynamicznie zmieniających się możliwości sieciowych PANS.
- Gromadzenie danych pomocniczych.
- Udostępnia aplikację referencyjną.
Dlaczego PANS?
Numery PANS umożliwiają:
- Dynamicznie aktualizuj mapowania aplikacji na sieć.
- Zarządzaj routingiem na poziomie aplikacji bez wprowadzania zmian w aplikacjach.
- Dostęp do zmapowanych sieci OEM mają tylko aplikacje, które są dozwolone przez OEM.
- Deweloperzy aplikacji nie muszą wprowadzać żadnych zmian, aby wdrożyć tę funkcję.
- Dane dla użytkowników śledzą wykorzystanie danych między aplikacjami w przypadku rozwiązań zarządzanych przez OEM sieci.
- Dostęp do sieci jest bezpieczny i nie można go wykorzystać w niezamierzony sposób ani nieautoryzowanych aplikacji.
- Informacje o zmianach w mapowaniu aplikacji na sieć przy użyciu numeru PANS są przekazywane użytkownikom.
- W przypadku wszystkich użytkowników stosowana jest ta sama konfiguracja sieci.
Główne zalety
Numer PANS zapewnia producentom OEM te główne korzyści:
- OEM może płacić za ruch w sieci, a nie za użytkowników:
- Aktualizacje systemu mogą być udostępniane bezpłatnie użytkownikom.
- Użytkownik może bezpłatnie korzystać z sieci przez określone aplikacje.
- Zarządzanie danymi telemetrycznymi i innymi analizami jest bezpłatne dla użytkownika.
- OEM może zapewnić, że najważniejsze aplikacje pozostaną połączone nawet bez w ramach abonamentu. Są to na przykład funkcje kluczowe dla bezpieczeństwa, takie jak mapy, Asystent (obsługa bez użycia rąk) i aktualizacje systemu działają nawet gdy użytkownik nie korzysta z pakietu danych.
- Numer PANS zapewnia dodatkową szczegółową kontrolę nad ruchem w sieci w Androidzie. Na przykład producenci OEM mogą optymalnie zdefiniować sieć logiczną topologii do kierowania ruchu na poziomie aplikacji.
Rysunek 1. schemat PANS
Wdróż numery PANS
Aby wdrożyć numery PANS, nowy interfejs API ConnectivityManager
,
setOemNetworkPreference
.
Ten nowy interfejs API mapuje aplikacje na OemNetworkPreference
.
Ten interfejs API jest dostępny tylko dla urządzeń samochodowych i jest oznaczony jako
@SystemApi
z nowym uprawnieniem signature
.
Rysunek 2. Wdróż numery PANS
Preferencja sieci OEM
OemNetworkPreference
jest abstrakcją w zakresie OEM_PAID
i
OEM_PRIVATE
NetworkCapabilities
aplikacje mapujące według nazwy pakietu
do ustawień sieci. Preferencje sieci pozwalają na hierarchie sieci.
Na przykład mapowanie aplikacji na ustawienie OEM_NETWORK_PREFERENCE_OEM_PAID
daje taki priorytet domyślnych sieci przypisanych do aplikacji: użycie
Najpierw sieć UNMETERED
, jeśli sieć UNMETERED
jest niedostępna, użyj
sieć OEM_PAID
, a jeśli sieć OEM_PAID
jest niedostępna, użyj systemu
sieć domyślna.
OEM_PAID
Używany głównie w przypadku aplikacji, które można kierować na Sieci OEM i innych firm.OEM_PRIVATE
Używany głównie w przypadku aplikacji OEM w celu uzyskiwania dostępu do w odpowiedniej sieci reklamowej.
/** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, use the general default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID = 1; /** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, the app doesn't get a default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2; /** * Use only NET_CAPABILITY_OEM_PAID networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3; /** * Use only NET_CAPABILITY_OEM_PRIVATE networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;
Wywołaj interfejsy API PANS
Aby korzystać z interfejsów API PANS:
- Użyj
OemNetworkPreferences
, aby zmapować aplikację na preferencję sieci. - Zadzwoń do firmy
setOemNetworkPreference
, używając:OemNetworkPreferences
obiektu. - Użyj interfejsu
Runnable
, aby nasłuchiwać zakończenia interfejsu API.
Na przykład:
// Mapping three packages to two network preferences // Packages have a 1:1 mapping to network preferences OemNetworkPreferences pref = new OemNetworkPreferences.Builder() .addNetworkPreference("first.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("second.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("third.package.name", OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY) .build(); myConnectivityManager.setOemNetworkPreference(pref, myExecutor, myListener);
co należy wziąć pod uwagę
Stosując numery PANS, pamiętaj o tych kwestiach:
- Ustawienia sieci nie są zachowywane podczas uruchamiania i trzeba je są ponownie stosowane przy każdym uruchomieniu.
- Aby można było określić preferencje dla aplikacji, nie trzeba jej instalować. Dlatego też ustawienia odinstalowanych aplikacji można skonfigurować proaktywnie.
- W danym momencie aplikację można zmapować tylko na jedno ustawienie sieci.
- Ustawienia sieci służą do określania domyślnej sieci aplikacji. To jest
Sieć używana, gdy aplikacja nie określiła, przez które sieci chce używać sieci
wyspecjalizowanych interfejsów API. Te rozwiązania nie tylko zaspokajają zdecydowaną większość potrzeb w zakresie łączności,
umożliwia również dalsze korzystanie z wyspecjalizowanych interfejsów API, takich jak
NetworkRequest
API tak, aby nie zakłócać istniejących przypadków użycia aplikacji. Na przykład, gdy aplikacja chce wykonać tylko w sieci bez pomiaru, numer PANS nie wymusza na nim użycia innej sieci.
Konfigurowanie sieci
Sieć z OEM_PAID
lub OEM_PRIVATE
funkcje muszą być dostępne przy korzystaniu z odpowiednich preferencji sieci. Android,
zapewnia obsługę konfiguracji możliwości sieci Ethernet i Wi-Fi. Dla:
sieci Ethernet, możesz użyć nakładki zasobów config_ethernet_interfaces
.
Jest ona ustawiana podczas kompilacji.
W przypadku Wi-Fi interfejsu API WifiNetworkSuggestion
można używać z nowym modułem
Interfejsy API Androida 12, setOemPaid(Boolean)
oraz
setOemPrivate(Boolean)
Można to zmienić w czasie działania.
Weźmy pod uwagę te przykłady:
- Nakładka zasobu o nazwie
config_ethernet_interfaces
określa:- Nazwa interfejsu do skonfigurowania.
- Żądane wartości
NetworkCapabilities
.<!-- 11 NET_CAPABILITY_NOT_METERED 12 NET_CAPABILITY_INTERNET 14 NET_CAPABILITY_TRUSTED 15 NET_CAPABILITY_NOT_VPN 22 NET_CAPABILITY_OEM_PAID || 26 NET_CAPABILITY_OEM_PRIVATE --> <string-array translatable="false" name="config_ethernet_interfaces"> <item>eth0;11,12,14,15,22;;</item></string-array>
- Element
WiFiNetworkSuggestion
można zmienić dynamicznie:ArrayList<WifiNetworkSuggestion> list = new ArrayList<>(); list.add(new WifiNetworkSuggestion.Builder() .setSsid(WifiInfo.sanitizeSsid(ssid)) .setOemPrivate(true) .build()); mWifiManager.addNetworkSuggestions(list);
Ogranicz dostęp do sieci PANS
Tagowanie sieci za pomocą tagów OEM_PAID
lub OEM_PRIVATE
oznacza, że sieć jest siecią z ograniczonym dostępem. Sieci z ograniczonym dostępem
mogą być używane tylko przez aplikacje, które mają
CONNECTIVITY_USE_RESTRICTED_NETWORKS
, które jest kontrolowane przez producentów OEM.
Aplikacje z tym uprawnieniem mogą korzystać z sieci z ograniczonym dostępem, o ile aplikacje tego zażądają . Jednak dla tych aplikacji nie będzie domyślnie włączona sieć z ograniczonym dostępem. aplikacji; mapowane przez PANS mogą mieć ustawione ograniczone sieci OEM jako domyślne, więc nie trzeba ich używać uprawnienia do korzystania z nich. Gdy aplikacja ma ograniczony dostęp Sieć OEM przypisana jako sieć domyślna przez PANS. Może też wyraźnie wskazać sieć OEM, jeśli aplikacja na to zezwoli.
Sprawdź aplikację referencyjną
Dostarczono aplikację referencyjną (wraz z kodem) o nazwie NetworkPreferenceApp
w kompilacjach motoryzacyjnych przeznaczonych do debugowania przez użytkownika i pokazuje, jak:
- Wykorzystuj dane PANS.
- Ustaw zasadę PANS.
- Ustaw domyślną zasadę dla urządzenia.
- Wyczyść zasadę.
- Zastosuj zasadę podczas uruchamiania.
- Używanie interfejsu Driver Distraction API (zobacz Wskazówki dotyczące rozpraszania uwagi kierowcy).
- Dynamicznie aktualizuj Wi-Fi za pomocą urządzeń
OEM_PAID
iOEM_PRIVATE
.
Rysunek 3. Aplikacja referencyjna
Dane
Aby ułatwić przejrzystość korzystania z danych, gromadzimy i tworzymy
ilość danych przesyłanych przez
Mapowania sieci OEM_PAID
i OEM_PRIVATE
.
Rozwiązywanie problemów
Większość problemów wynika z używania przez aplikację niewłaściwej sieci (brak połączenia sieciowego) czy przekroczenia limitu danych. Aby włączyć szybkie rozwiązania:
- Połączenia
dumpsys
zawierają listę aktywnych połączeń domyślnych sieci dla poszczególnych aplikacji i powiązanych z nimi aplikacji (zmapowanych na podstawie numerów PANS). - Netd
dumpsys
obejmuje adres IP UID i reguły zapory sieciowej. - Netstats
dumpsys
zawiera dane PANS poszczególnych aplikacji. Na przykład informacje o tym, które aplikacje korzystały z której sieci OEM.
Wszystkie dane z aplikacji dumpsys
są dostępne, jeśli utworzysz raport o błędzie z Androida.