W przypadku urządzeń z systemem Android 12 lub nowszym system Android zapewnia obsługę dzielenia sieci 5G, czyli wykorzystania wirtualizacji sieci do dzielenia pojedynczych połączeń sieciowych na wiele odrębnych połączeń wirtualnych, które zapewniają różną ilość zasobów dla różnych typów ruchu. Dzielenie sieci 5G pozwala operatorom sieci przeznaczyć część sieci na zapewnianie określonych funkcji dla określonego segmentu klientów. W systemie Android 12 wprowadzono następujące możliwości podziału sieci korporacyjnej 5G, które operatorzy sieci mogą zapewnić swoim klientom korporacyjnym:
Dzielenie urządzeń korporacyjnych na w pełni zarządzane urządzenia
W przypadku przedsiębiorstw udostępniających swoim pracownikom w pełni zarządzane urządzenia firmowe dostawcy sieci mogą zapewnić im jeden lub więcej aktywnych segmentów sieci korporacyjnej, do których kierowany jest ruch na urządzeniach firmowych. Począwszy od Androida 12, Android umożliwia operatorom udostępnianie segmentów dla przedsiębiorstw za pośrednictwem reguł URSP zamiast konfigurowania segmentów za pośrednictwem APN.
Dzielenie aplikacji biznesowych dla przedsiębiorstw na urządzenia z profilami do pracy
W przypadku przedsiębiorstw korzystających z rozwiązania profilu do pracy system Android 12 umożliwia urządzeniom kierowanie ruchu ze wszystkich aplikacji w profilu do pracy do fragmentu sieci korporacyjnej. Przedsiębiorstwa mogą włączyć tę funkcję za pomocą kontrolera Device Policy Controller (DPC) .
Rozwiązanie profilu służbowego zapewnia automatyczny poziom uwierzytelniania i kontroli dostępu wymagany w przedsiębiorstwach, aby mieć pewność, że do fragmentu sieci korporacyjnej kierowany jest tylko ruch z aplikacji korporacyjnych w profilu służbowym. Nie trzeba modyfikować aplikacji w profilu służbowym, aby jawnie żądały fragmentu sieci korporacyjnej.
Jak działa dzielenie sieci 5G w AOSP
W systemie Android 12 wprowadzono obsługę dzielenia sieci 5G poprzez dodatki do bazy kodu telefonii w AOSP i module Tethering w celu uwzględnienia istniejących interfejsów API łączności wymaganych do dzielenia sieci.
Platforma telefonii Android udostępnia interfejsy API HAL i telefonii umożliwiające dzielenie na kawałki na podstawie żądań sieciowych przesyłanych przez główny kod sieciowy oraz możliwości dzielenia sieci 5G w modemie. Rysunek 1 opisuje elementy funkcji dzielenia sieci 5G.
Rysunek 1. Architektura podziału sieci 5G w AOSP.
Platforma telefonii i łączności obsługuje:
- Konwertowanie żądań sieciowych dotyczących kategorii wycinków na deskryptory ruchu , które są następnie przekazywane do modemu w celu dopasowania ruchu URSP i wyboru trasy
- Powrót do sieci domyślnej, jeśli fragment sieci korporacyjnej nie jest dostępny
- Kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do odpowiedniego połączenia
Wspieranie krojenia w przedsiębiorstwie
- Wykrywanie obecności profilu do pracy na urządzeniu
- Sprawdzanie uprawnień lub wskazówek dotyczących routingu dostarczonych z DPC używanego przez administratora IT przedsiębiorstwa
Podstawowa usługa sieciowa obejmuje następujące zmiany w module Tethering w systemie Android 12:
- Dodaje większość publicznych lub systemowych klas API
android.net.*
do modułu Tethering Rozszerza granice modułu Tethering o:
-
f/b/core/java/android/net/…
-
f/b/services/net/…
-
f/b/services/core/java/com/android/server/connectivity/…
-
f/b/services/core/java/com/android/server/ConnectivityService.java
-
f/b/services/core/java/com/android/server/TestNetworkService.java
-
Przenosi kod VPN z modułu Tethering
Android 12 przenosi kod z następującymi możliwościami do modułu Tethering:
- Odbieranie żądań z aplikacji dotyczących połączeń sieciowych
- Odbieranie żądań z systemu (na przykład „umieść te aplikacje w segmencie korporacyjnym”; wprowadzone w Androidzie 12)
- Wysyłanie żądań z systemu do kodu telefonicznego, który próbuje skonfigurować sieci lub plasterki, przechodząc przez API HAL i modem
- Informowanie sieci o sposobie kierowania ruchu dla poszczególnych aplikacji (wprowadzone w systemie Android 12)
- Informowanie aplikacji o tym, co dzieje się z ich ruchem sieciowym, za pośrednictwem interfejsów API
ConnectivityManager
, takich jakNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
.
Realizacja
Aby obsługiwać cięcie 5G na urządzeniu, urządzenie musi mieć modem obsługujący IRadio 1.6 HAL z interfejsem API setupDataCall_1_6
. Ten interfejs API konfiguruje połączenie danych i zawiera następujące parametry umożliwiające obsługę krojenia 5G:
-
trafficDescriptor
: Określa deskryptor ruchu wysyłany do modemu -
sliceInfo
: Określa informacje dotyczące segmentu sieci, które mają być użyte w przypadku przekazania EPDG do 5G -
matchAllRuleAllowed
: Określa, czy dozwolone jest używanie domyślnej reguły URSP typu „dopasuj wszystko”. Telefonia ustawia tę opcję na true dla sieci domyślnych, ale nie dla plasterków. Reguła dopasowania wszystkich jest stosowana do sieci domyślnych. Gdy aplikacja żąda określonego wycinka, który nie jest dostępny, określony wycinek jest zgłaszany jako niedostępny. W przypadku aplikacji dla przedsiębiorstw struktura telefonii może zostać przywrócona do sieci domyślnej, jeśli sieć firmowa nie jest dostępna.
Modemy muszą także implementować interfejs API getSlicingConfig
, chyba że zostanie on zgłoszony jako nieobsługiwany przez interfejs API getHalDeviceCapabilities
.
Wymagania przedsiębiorstwa
Poniżej opisano wymagania stawiane przedsiębiorstwom w zakresie korzystania z podziału sieci 5G na urządzeniach w ramach korporacyjnego wdrożenia systemu Android.
- Upewnij się, że w pełni zarządzane urządzenia lub urządzenia pracowników skonfigurowane z profilem do pracy obsługują sieć 5G SA z modemami obsługującymi interfejs API
setupDataCall_1_6
. - Współpracuj z partnerem w zakresie konfiguracji plasterków i wydajności lub charakterystyki umowy SLA.
Włączanie dzielenia sieci 5G na urządzeniach skonfigurowanych z profilem do pracy
W przypadku urządzeń skonfigurowanych z profilami służbowymi dzielenie sieci 5G w AOSP jest domyślnie wyłączone. Aby włączyć podział sieci, administratorzy IT w przedsiębiorstwie mogą włączać lub wyłączać kierowanie ruchu aplikacji profilu służbowego do fragmentu sieci firmowej dla poszczególnych pracowników za pośrednictwem usługi EMM DPC, która korzysta z metody setPreferentialNetworkServiceEnabled
w interfejsie API DevicePolicyManager
(DPM) (wprowadzonym w systemie Android 12).
Dostawcy usług EMM z niestandardowymi kodami DPC muszą zintegrować interfejs API DevicePolicyManager
, aby obsługiwać klientów korporacyjnych.
Regulamin URSP
Ta sekcja zawiera informacje dla operatorów dotyczące konfigurowania reguł URSP dla różnych kategorii wycinków, w tym ruchu korporacyjnego, CBS, małych opóźnień i ruchu o dużej przepustowości. Konfigurując reguły URSP dla różnych kategorii wycinków, przewoźnicy muszą używać następujących wartości specyficznych dla Androida.
ID | Wartość | Opis |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 | OSID dla Androida to identyfikator UUID wersji 5 wygenerowany z przestrzenią nazw ISO OID i nazwą „Android”. |
Przewoźnicy muszą skonfigurować reguły URSP dla każdego ruchu segmentowego ze składnikiem deskryptora ruchu jako „Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego”. Na przykład wycinek „ENTERPRISE” musi mieć wartość 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
. Ta wartość jest połączeniem identyfikatora OSId, długości OSAppId ( 0x0A
) i OSAppId. Aby uzyskać więcej informacji na temat typu komponentu deskryptora ruchu, zobacz 3GPP TS 24.526 Tabela 5.2.1 .
W poniższej tabeli opisano wartości OSAppId dla różnych kategorii wycinków.
Kategoria plasterka | OSAppId | Opis |
---|---|---|
PRZEDSIĘBIORSTWO | 0x454E5445525052495345 | OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE” |
PRZEDSIĘBIORCZOŚĆ2 | 0x454E544552505249534532 | OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE2” |
PRZEDSIĘBIORCZOŚĆ3 | 0x454E544552505249534533 | OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE3” |
PRZEDSIĘBIORCZOŚĆ 4 | 0x454E544552505249534534 | OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE4” |
PRZEDSIĘBIORCZOŚĆ5 | 0x454E544552505249534535 | OSAppId to tablica bajtowa reprezentująca ciąg „ENTERPRISE5” |
CBS | 0x434253 | OSAppId to tablica bajtów reprezentująca ciąg „CBS” |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppId to tablica bajtów reprezentująca ciąg „PRIORITIZE_LATENCY” |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppId to tablica bajtowa reprezentująca ciąg „PRIORITIZE_BANDWIDTH” |
Przykładowe zasady URSP
Poniższe tabele przedstawiają przykładowe reguły URSP dla ruchu korporacyjnego, CBS, małych opóźnień, dużej przepustowości i ruchu domyślnego.
Przedsiębiorstwo 1
Obsługa wersji Enterprise 1 jest dostępna w systemie Android 12 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE1:
Zasada URSP nr 1 (przedsiębiorstwo 1) | |
---|---|
Precedens | 1 (0x01) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przedsiębiorstwo |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przedsiębiorstwo |
Przedsiębiorstwo 2
Wsparcie dla Enterprise 2 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE2:
Zasada URSP nr 2 (przedsiębiorstwo 2) | |
---|---|
Precedens | 2 (0x02) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przedsiębiorstwo2 |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przedsiębiorstwo2 |
Przedsiębiorstwo 3
Wsparcie dla Enterprise 3 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE3:
Zasada URSP nr 3 (przedsiębiorstwo 3) | |
---|---|
Precedens | 3 (0x03) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przedsiębiorstwo3 |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przedsiębiorstwo3 |
Przedsiębiorstwo 4
Wsparcie dla Enterprise 4 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE4:
Zasada URSP nr 4 (przedsiębiorstwo 4) | |
---|---|
Precedens | 4 (0x04) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przedsiębiorstwo4 |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przedsiębiorstwo4 |
Przedsiębiorstwo 5
Wsparcie dla Enterprise 5 jest dostępne w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu ENTERPRISE5:
Zasada URSP nr 5 (przedsiębiorstwo 5) | |
---|---|
Precedens | 5 (0x05) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przedsiębiorstwo5 |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przedsiębiorstwo5 |
CBS
Obsługa CBS jest dostępna w systemie Android 13 i nowszych. Poniżej znajduje się przykładowa reguła URSP dla ruchu CBS:
Zasada URSP nr 6 (CBS) | |
---|---|
Precedens | 6 (0x06) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | cbs |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | cbs |
Małe opóźnienia
Obsługa małych opóźnień jest dostępna w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu LOW_LATENCY:
Zasada URSP nr 7 (niskie opóźnienie) | |
---|---|
Precedens | 7 (0x07) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | czas oczekiwania |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | czas oczekiwania |
Wysoka przepustowość
Obsługa dużej przepustowości jest dostępna w systemie Android 13 i nowszych wersjach. Poniżej znajduje się przykładowa reguła URSP dla ruchu HIGH_BANDWIDTH:
Zasada URSP nr 8 (duża przepustowość) | |
---|---|
Precedens | 8 (0x08) |
Deskryptor ruchu nr 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Komponent nr 2: DNN | przepustowość łącza |
Deskryptor wyboru trasy nr 2 | |
Precedens | 2 (0x02) |
Komponent nr 1: DNN | przepustowość łącza |
Domyślny
Zasada URSP nr 9 (domyślna) | |
---|---|
Precedens | 9 (0x09) |
Deskryptor ruchu nr 1 | |
pasuje do wszystkiego | Nie dotyczy |
Deskryptor wyboru trasy nr 1 | |
Precedens | 1 (0x01) |
Składnik nr 1: S-NSSAI | SST:XX SD:RRRRRR |
Testowanie
Aby przetestować podział sieci 5G, wykonaj następujący test ręczny.
Aby skonfigurować urządzenie do testowania, wykonaj następujące czynności:
Upewnij się, że zasada URSP jest skonfigurowana z regułą inną niż domyślna, która odpowiada kategorii przedsiębiorstwa i że odpowiedni deskryptor wyboru trasy odwzorowuje kategorię przedsiębiorstwa na wycinek przedsiębiorstwa; oraz domyślną regułę kierującą ruch do domyślnego segmentu Internetu.
Upewnij się, że na urządzeniu skonfigurowano profil do pracy.
Wyraź zgodę na korzystanie z podziału sieci przez DPC
Aby przetestować zachowanie podziału sieci 5G, wykonaj następujące czynności:
- Sprawdź, czy sesja PDU została ustanowiona z segmentem korporacyjnym (na przykład przy użyciu określonego adresu IP) i czy aplikacje w profilu służbowym korzystają z tej sesji PDU.
- Sprawdź, czy z domyślnym segmentem internetowym została ustanowiona osobna sesja PDU i czy aplikacje w profilu osobistym korzystają z sesji PDU.
Sprzedaż dodatkowa krojenia 5G
Funkcja dodatkowej sprzedaży dzielenia sieci 5G, dostępna w systemie Android 14-QPR1, umożliwia operatorom oferowanie użytkownikom ulepszonych możliwości sieci (opóźnienie i przepustowość) poprzez dzielenie sieci 5G.
Funkcja dodatkowej sprzedaży 5G wykorzystuje odpowiedź TS.43 z serwera uprawnień operatora do kierowania przepływem zakupów. Przewoźnicy mogą wykorzystać odpowiedź do określenia adresu URL widoku internetowego zakupu operatora, wysłać dodatkowe dane do widoku internetowego i wskazać, czy wycinek jest udostępniany i dostępny w sieci operatora.
Operatorzy mogą dostosować zachowanie funkcji dodatkowej sprzedaży sieci 5G za pomocą konfiguracji operatorów, które kontrolują, czy można składać żądania zakupu, kiedy aplikacje mogą żądać funkcji premium i jak długo platforma telefonii czeka na odpowiedzi od użytkownika lub sieci.
Funkcja sprzedaży dodatkowej 5G udostępnia interfejs o nazwie DataBoostWebServiceFlow
, który umożliwia komunikację między systemem Android a przeglądarką internetową operatora.
Rysunek 2 przedstawia proces zakupu dodatkowej sprzedaży 5G:
Rysunek 2. Przepływ zakupów związanych z sprzedażą dodatkową w sieci 5G.
Proces nadawania uprawnień zgodnie z TS.43
Kiedy użytkownik żąda rozszerzonych możliwości sieci, struktura telefonii żąda konfiguracji uprawnień do usług dla żądanych funkcji premium. Jeśli odpowiedź TS.43 jest prawidłowa, struktura telefonii używa pól z odpowiedzi HTTP do kierowania żądaniem zakupu.
Pola zakupu plasterków
Konfiguracja uprawnień TS.43 obejmuje następujące pola zakupu plasterków:
- Stan uprawnień
Klucz:
EntitlementStatus
Typ:
int
Obsługiwane wartości:
0
(wyłączone),1
(włączone),2
(niekompatybilne),3
(wyposażenie),4
(w zestawie)- Stan udostępnienia
Klucz:
ProvStatus
Typ:
int
Obsługiwane wartości:
0
(brak obsługi),1
(dostępność),2
(niedostępność),3
(w toku)
Struktura telefonii wykorzystuje kombinację statusu uprawnień i statusu udostępniania do określenia bieżącego stanu zakupu wycinka. Wynik może być jednym z następujących:
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
Jeśli stan uprawnienia to 1
(włączone), a stan udostępnienia to 0
(brak obsługi administracyjnej), struktura telefonii wyświetla użytkownikowi powiadomienie o sprzedaży dodatkowej, aby mógł zakupić dodatek za pośrednictwem przeglądarki internetowej operatora. W poniższej tabeli opisano zachowanie środowiska telefonii dla różnych kombinacji wartości statusu udostępniania i uprawnień.
Stan udostępnienia | |||||
---|---|---|---|---|---|
Brak obsługi administracyjnej ( 0 ) | Zapewnione ( 1 ) 1 ) | Niedostępne ( 2 ) | W toku ( 3 ) | ||
Stan uprawnień | Niepełnosprawny ( 0 ) | Przegrany | Przegrany | Przegrany | Przegrany |
Włączone ( 1 ) | Pokaż widok sieciowy | Już zakupiona | Już zakupiona | W trakcie | |
Niekompatybilny ( 2 ) | Przegrany | Przegrany | Przegrany | Przegrany | |
Udostępnianie ( 3 ) | Błąd przewoźnika | Błąd przewoźnika | W trakcie | W trakcie | |
Zawiera ( 4 ) | Błąd przewoźnika | Już zakupiona | Już zakupiona | Błąd przewoźnika |
Pola przepływu usług
Odpowiedź TS.43 określa adres URL, dane użytkownika i typ zawartości, aby dostosować zachowanie podczas przeglądania stron internetowych zakupów u operatora. Jeśli typ zawartości nie jest określony, adres URL jest ładowany jako żądanie GET. Jeśli dane użytkownika istnieją, są dołączane do adresu URL jako parametr zapytania (na przykład https://www.android.com?encodedValue=Base64EncodedUserData
); a jeśli nie istnieje, adres URL zostanie użyty w niezmienionej postaci (na przykład https://www.android.com
).
Jeśli typ zawartości jest określony w formacie JSON lub XML, adres URL jest ładowany jako żądanie POST, a dane użytkownika (zdekodowane, jeśli są zakodowane w Base 64) są wysyłane jako dane dla żądania POST.
- Adres URL
Klucz:
ServiceFlow_URL
Typ:
String
Przykład:
"https://www.android.com"
- Dane użytkownika
Klucz:
ServiceFlow_UserData
Typ:
String
Przykład:
"encodedValue=Base64EncodedUserData"
- Typ zawartości
Klucz:
ServiceFlow_ContentsType
Typ:
String
Obsługiwane wartości:
0
(nieokreślony),1
(JSON),2
(XML)
Konfiguracje przewoźników
Poniżej przedstawiono dostępne konfiguracje operatorów umożliwiające dostosowanie zachowania funkcji sprzedaży dodatkowej 5G.
-
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Lista obsługiwanych funkcji premium. To jest tablica typu int
TelephonyManager.PremiumCapability
. Te możliwości premium mają tę samą wartość, co odpowiednia klasaNetworkCapabilities.NetCapability
. Jeśli zażądano funkcji premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu kończy się niepowodzeniem i wynikiemCARRIER_DISABLED
.W systemie Android 14 obsługiwana jest tylko
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Maksymalna dzienna liczba pokazań użytkownikowi powiadomienia o dodatkowej sprzedaży. Jeśli dzienne maksimum zostanie osiągnięte, powiadomienie o sprzedaży dodatkowej nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do północy następnego dnia. Żądania zakupu złożone po osiągnięciu dziennego maksimum kończą się niepowodzeniem i wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Maksymalna miesięczna liczba pokazań użytkownikowi powiadomienia o dodatkowej sprzedaży. Jeśli zostanie osiągnięte miesięczne maksimum, powiadomienie o sprzedaży dodatkowej nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do pierwszego dnia kolejnego miesiąca. Żądania zakupu złożone po osiągnięciu miesięcznego maksimum kończą się niepowodzeniem i wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
Adres URL zakupu u przewoźnika zapasowego, który będzie wyświetlany użytkownikowi po kliknięciu powiadomienia o sprzedaży dodatkowej. Jeśli adres URL zakupu nie zostanie znaleziony w odpowiedzi TS.43 z serwera uprawnień, zamiast tego zostanie użyta ta wartość. Jeśli ani adres URL z odpowiedzi TS.43, ani konfiguracja operatora nie są prawidłowe, żądanie zakupu kończy się niepowodzeniem i wynikiem jest
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.-
KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Czy zezwolić na zakup funkcji premium, gdy urządzenie jest podłączone do Long-Term Evolution (LTE). Jeśli
true
, zamówienia można składać zarówno w LTE, jak i w Nowym Radiu (NR). Jeślifalse
, żądania zakupu można składać tylko na NR, a żądania składane na LTE kończą się niepowodzeniem i wynikiem jestPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.-
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
Czas wyświetlania użytkownikowi powiadomienia o dodatkowej sprzedaży zakupu, zanim zostanie ono automatycznie anulowane. Po anulowaniu powiadomienia kolejne żądania są ograniczane i kończą się niepowodzeniem z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Czas, przez który kolejne żądania zakupu powinny być ograniczane po awarii spowodowanej przekroczeniem limitu czasu lub anulowaniem przez użytkownika. Jeśli użytkownik nie kliknie powiadomienia o dodatkowej sprzedaży zakupu w terminie określonym przez
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
lub jeśli anuluje lub odrzuci powiadomienie, rozpoczyna się odliczanie czasu wycofywania. Gdy ten licznik czasu jest aktywny, żądania zakupu kończą się niepowodzeniem i wynikiemPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Czas, przez który kolejne żądania zakupu powinny być ograniczane po awarii spowodowanej przez operatora lub sieć. Jeśli sprawdzenie uprawnień nie powiedzie się, adres URL będzie niedostępny lub adres URL zakupu u operatora wskazuje na błąd, rozpoczyna się odliczanie czasu wycofywania. Gdy ten licznik czasu jest aktywny, żądania zakupu kończą się niepowodzeniem i wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Czas, w którym sieć musi skonfigurować konfigurację podziału dla możliwości zakupu premium. W tym okresie kolejne żądania zakupu są blokowane i zwracają wynik
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Jeśli sieć nie skonfiguruje na czas konfiguracji podziału, aplikacje mogą ponownie poprosić o zakup funkcji premium. Telefonia nie uznaje zakupu za zakończony do czasu wysłania odpowiedniej konfiguracji podziału, niezależnie od tego, czy użytkownik zapłacił przewoźnikowi, czy nie.
Interfejs JavaScript
Gdy użytkownik kliknie powiadomienie o wzmocnieniu sieci, zostanie mu wyświetlony obiekt WebView
z adresem URL zakupu u operatora. Przewoźnicy mogą korzystać z interfejsów API dostępnych w interfejsie Javascript DataBoostWebServiceFlow
w swojej witrynie zakupów, aby komunikować się z aplikacją do zakupu plasterków.
Witryna internetowa operatora może uzyskać żądaną funkcję premium za pomocą metody getRequestedCapability()
.
Jeśli zakup się powiedzie, witryna operatora musi powiadomić aplikację do zakupu plasterków za pomocą notifyPurchaseSuccessful()
lub notifyPurchaseSuccessful(duration)
gdzie duration
jest opcjonalnym parametrem wskazującym zamierzony czas trwania plasterka.
Jeśli zakup się nie powiedzie, witryna operatora musi powiadomić aplikację do zakupu plasterków za pomocą metody notifyPurchaseFailed(code, reason)
, gdzie code
to kod błędu wskazujący przyczynę niepowodzenia, a reason
to czytelny dla człowieka powód niepowodzenia, jeśli kod błędu jest nieznany.
Jeśli którakolwiek z tych metod odpowiedzi nie zostanie wywołana, zakup nie zostanie uznany za ukończony, a żądanie zakupu ostatecznie przekroczy limit czasu.
Poniżej znajdują się prawidłowe kody błędów, które witryna internetowa przewoźnika może zwrócić w przypadku niepowodzenia zakupu:
-
FAILURE_CODE_UNKNOWN
-
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
-
FAILURE_CODE_AUTHENTICATION_FAILED
-
FAILURE_CODE_PAYMENT_FAILED
-
FAILURE_CODE_NO_USER_DATA
Po sfinalizowaniu zakupu przewoźnik musi zaktualizować reguły URSP o plasterek PRIORITIZE_LATENCY
na urządzeniu użytkownika.