W przypadku urządzeń z Androidem 12 lub nowszym Android obsługuje podział sieci 5G, czyli wykorzystanie wirtualizacji sieci do dzielenia pojedynczych połączeń sieciowych na wiele odrębnych połączeń wirtualnych, które zapewniają różne ilości zasobów dla różnych typów ruchu. Technologia 5G Network Slicing umożliwia operatorom sieci wydzielenie części sieci na potrzeby zapewnienia określonych funkcji konkretnemu segmentowi klientów. Android 12 wprowadza te funkcje dzielenia sieci 5G na potrzeby firm, które operatorzy sieci mogą udostępniać swoim klientom biznesowym:
Podział urządzenia na profile służbowy i prywatny na w pełni zarządzanych urządzeniach
Firmy, które udostępniają pracownikom w pełni zarządzane urządzenia firmowe, mogą korzystać z usług dostawców sieci, którzy zapewniają im co najmniej 1 aktywny wycinek sieci firmowej, do którego kierowany jest ruch z urządzeń firmowych. Od Androida 12 operatorzy mogą udostępniać segmenty sieci korporacyjnej za pomocą reguł URSP zamiast konfigurować segmenty sieci za pomocą APN.
Dzielenie aplikacji biznesowych na urządzeniach z profilami służbowymi
W przypadku firm korzystających z profilu służbowego Android 12 umożliwia kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do segmentu sieci firmowej. Firmy mogą włączyć tę funkcję za pomocą kontrolera zasad dotyczących urządzeń (DPC).
Rozwiązanie profilu służbowego zapewnia automatyczny poziom uwierzytelniania i kontroli dostępu, którego firmy potrzebują, aby mieć pewność, że tylko ruch z aplikacji firmowych w profilu służbowym jest kierowany do wyodrębnionej sieci firmowej. Aplikacje w profilu służbowym nie muszą być modyfikowane, aby wyraźnie żądać wycinka sieci firmowej.
Jak działa dzielenie sieci 5G w AOSP
Android 12 wprowadza obsługę podziału sieci 5G dzięki dodatkom do kodu telefonicznego w AOSP i modułu tetheringu, które umożliwiają korzystanie z dotychczasowych interfejsów API łączności wymaganych do podziału sieci.
Platforma telefoniczna Androida udostępnia interfejsy HAL i telefoniczne API, które obsługują podział na podstawie żądań sieciowych zgłaszanych przez podstawowy kod sieciowy oraz funkcje podziału sieci 5G w modemie. Na rysunku 1 przedstawiono elementy funkcji podziału sieci 5G.
Rysunek 1. Architektura segmentacji sieci 5G w AOSP.
Platforma telefoniczna i łączności obsługuje:
- Przekształcanie żą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.
- W przypadku niedostępności wycinka sieci firmowej powrót do sieci domyślnej.
- kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do odpowiedniego połączenia;
Obsługa podziału sieci dla przedsiębiorstw
- wykrywanie obecności profilu służbowego na urządzeniu;
- Sprawdzanie uprawnień lub wskazówek dojazdu podanych przez DPC używany przez administratora IT firmy
Podstawowa usługa sieciowa obejmuje te zmiany w module Tethering w Androidzie 12:
- Dodaje większość klas interfejsu API
android.net.*
publicznego lub systemowego do modułu Tethering Rozszerza granice modułu tetheringu, aby obejmował:
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 do modułu tetheringu kod z tymi funkcjami:
- Otrzymywanie żądań połączeń sieciowych z aplikacji
- Odbieranie żądań z systemu (np. „umieść te aplikacje w profilu firmowym”; funkcja wprowadzona w Androidzie 12).
- Wysyłanie żądań z systemu do kodu telefonicznego, który próbuje skonfigurować sieci lub wycinki, korzystając z interfejsu HAL API i modemu.
- informowanie usługi netd o sposobie kierowania ruchu w przypadku poszczególnych aplikacji (wprowadzone w Androidzie 12);
- Informowanie aplikacji o tym, co dzieje się z ich ruchem sieciowym, za pomocą interfejsów API, takich jak
NetworkCallback
,getActiveNetwork
,getNetworkCapabilities
.ConnectivityManager
Implementacja
Aby urządzenie obsługiwało podział sieci 5G, musi mieć modem obsługujący interfejs HAL IRadio 1.6, który ma interfejs API setupDataCall_1_6
. Ten interfejs API konfiguruje połączenie danych i zawiera te parametry
do obsługi podziału sieci 5G:
trafficDescriptor
: Określa deskryptor ruchu wysyłany do modemu.sliceInfo
: określa informacje o plasterku sieci, który ma być używany w przypadku przekazywania połączenia z EPDG do 5G.matchAllRuleAllowed
: określa, czy można używać domyślnej reguły URSP typu „dopasuj wszystko”. Telefonia ustawia tę wartość na „true” w przypadku sieci domyślnych, ale nie w przypadku wycinków sieci. Reguła dopasowania wszystkich jest stosowana do sieci domyślnych. Gdy aplikacja zażąda konkretnego wycinka, który jest niedostępny, zostanie on zgłoszony jako niedostępny. W przypadku aplikacji dla firm platforma Telephony może przełączyć się na sieć domyślną, jeśli sieć firmowa jest niedostępna.
Modemy muszą też implementować interfejs API getSlicingConfig
, chyba że interfejs API getHalDeviceCapabilities
zgłosi, że nie jest on obsługiwany.
Wymagania dotyczące klientów Enterprise
Poniżej opisujemy wymagania, które muszą spełniać przedsiębiorstwa, aby korzystać z segmentacji sieci 5G na urządzeniach wdrożonych w ramach Androida Enterprise.
- Sprawdź, czy w pełni zarządzane urządzenia lub urządzenia należące do pracowników z utworzonym profilem służbowym
obsługują 5G SA i mają modemy, które obsługują
setupDataCall_1_6
API. - Współpracuj z partnerem telekomunikacyjnym w zakresie konfiguracji i wydajności wycinka sieci lub charakterystyki umowy SLA.
Włączanie podziału sieci 5G na urządzeniach skonfigurowanych z profilem służbowym
W przypadku urządzeń z utworzonymi profilami służbowymi w AOSP domyślnie wyłączone jest dzielenie sieci 5G. Aby włączyć segmentację sieci, administratorzy IT mogą włączać lub wyłączać kierowanie ruchu z aplikacji w profilu służbowym do segmentu sieci firmowej w przypadku poszczególnych pracowników za pomocą kontrolera zasad dotyczących urządzeń (DPC) usługi EMM, który korzysta z metody setPreferentialNetworkServiceEnabled
interfejsu DevicePolicyManager
(DPM) API (wprowadzonego w Androidzie 12).
Dostawcy usług EMM z niestandardowymi kontrolerami zasad dotyczących urządzeń muszą zintegrować interfejs DevicePolicyManager
, aby obsługiwać klientów korporacyjnych.
Reguły URSP
Ta sekcja zawiera informacje dla operatorów o konfigurowaniu reguł URSP dla różnych kategorii sieci, w tym dla firm, CBS, ruchu o niskim opóźnieniu i dużej przepustowości. Podczas konfigurowania reguł URSP dla różnych kategorii wycinków sieci operatorzy muszą używać tych wartości specyficznych dla Androida.
ID | Wartość | Opis |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
Identyfikator OSId w przypadku Androida to identyfikator UUID w wersji 5 wygenerowany w przestrzeni nazw ISO OID i z nazwą „Android”. |
Operatorzy muszą skonfigurować reguły URSP dla każdego wycinka ruchu z komponentem deskryptora ruchu jako „Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym”. Na przykład wycinek „ENTERPRISE” musi mieć wartość 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
.
Ta wartość jest połączeniem identyfikatora OSId, długości identyfikatora OSAppId (0x0A
) i identyfikatora OSAppId.
Więcej informacji o typie komponentu deskryptora ruchu znajdziesz w tabeli 5.2.1 w 3GPP TS 24.526.
W tabeli poniżej znajdziesz wartości OSAppId dla różnych kategorii segmentów.
Kategoria wycinka | OSAppId | Opis |
---|---|---|
ENTERPRISE | 0x454E5445525052495345 |
OSAppId to reprezentacja w postaci tablicy bajtów ciągu znaków „ENTERPRISE”. |
ENTERPRISE2 | 0x454E544552505249534532 |
OSAppId to reprezentacja ciągu „ENTERPRISE2” w postaci tablicy bajtów. |
ENTERPRISE3 | 0x454E544552505249534533 |
OSAppId to reprezentacja ciągu „ENTERPRISE3” w postaci tablicy bajtów. |
ENTERPRISE4 | 0x454E544552505249534534 |
OSAppId to reprezentacja ciągu „ENTERPRISE4” w postaci tablicy bajtów. |
ENTERPRISE5 | 0x454E544552505249534535 |
OSAppId to reprezentacja ciągu „ENTERPRISE5” w postaci tablicy bajtów. |
CBS | 0x434253 |
OSAppId to tablica bajtów reprezentująca ciąg znaków „CBS”. |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 |
OSAppId to tablica bajtów reprezentująca ciąg znaków „PRIORITIZE_LATENCY”. |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 |
OSAppId to tablica bajtów reprezentująca ciąg „PRIORITIZE_BANDWIDTH”. |
Przykładowe reguły URSP
W tabelach poniżej przedstawiono przykładowe reguły URSP dla ruchu w sieciach korporacyjnych, CBS, o niskich opóźnieniach i dużej przepustowości oraz ruchu domyślnego.
Enterprise 1
Obsługa profilu Enterprise 1 jest dostępna w Androidzie 12 i nowszych wersjach. Oto przykładowa reguła URSP dla ruchu ENTERPRISE1:
Reguła URSP nr 1 (firma1) | |
---|---|
Pierwszeństwo | 1 (0x01) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | przedsiębiorstwo |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1. Sieć neuronowa DNN | przedsiębiorstwo |
Enterprise 2
Obsługa Enterprise 2 jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu ENTERPRISE2:
Reguła URSP nr 2 (enterprise2) | |
---|---|
Pierwszeństwo | 2 (0x02) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | enterprise2 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1. Sieć neuronowa DNN | enterprise2 |
Enterprise 3
Obsługa profilu Enterprise 3 jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu ENTERPRISE3:
Reguła 3 URSP (enterprise3) | |
---|---|
Pierwszeństwo | 3 (0x03) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | enterprise3 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | enterprise3 |
Enterprise 4
Obsługa profilu Enterprise 4 jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu ENTERPRISE4:
Reguła URSP nr 4 (enterprise4) | |
---|---|
Pierwszeństwo | 4 (0x04) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | enterprise4 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | enterprise4 |
Enterprise 5
Obsługa profilu Enterprise 5 jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu ENTERPRISE5:
Reguła URSP nr 5 (enterprise5) | |
---|---|
Pierwszeństwo | 5 (0x05) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | enterprise5 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | enterprise5 |
CBS
Obsługa CBS jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu CBS:
Reguła 6 URSP (CBS) | |
---|---|
Pierwszeństwo | 6 (0x06) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | cbs |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | cbs |
Małe opóźnienie
Obsługa krótkiego czasu oczekiwania jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu LOW_LATENCY:
Reguła URSP nr 7 (małe opóźnienie) | |
---|---|
Pierwszeństwo | 7 (0x07) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | opóźnienie |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | opóźnienie |
Duża przepustowość
Obsługa dużej przepustowości jest dostępna na urządzeniach z Androidem 13 i nowszym. Oto przykładowa reguła URSP dla ruchu HIGH_BANDWIDTH:
Reguła URSP 8 (duża przepustowość) | |
---|---|
Pierwszeństwo | 8 (0x08) |
Opis ruchu 1 | |
Identyfikator systemu operacyjnego + identyfikator aplikacji w systemie operacyjnym | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Komponent 2: DNN | bandwidth, |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | bandwidth, |
Domyślny
Reguła URSP nr 9 (domyślna) | |
---|---|
Pierwszeństwo | 9 (0x09) |
Opis ruchu 1 | |
dopasowanie do wszystkich | Nie dotyczy |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Testowanie
Aby przetestować podział sieci 5G, użyj tego testu ręcznego.
Aby skonfigurować urządzenie do testowania:
Sprawdź, czy zasada URSP jest skonfigurowana z regułą inną niż domyślna, która pasuje do kategorii przedsiębiorstwa, a odpowiedni deskryptor wyboru trasy mapuje kategorię przedsiębiorstwa na wycinek sieci przedsiębiorstwa oraz czy istnieje reguła domyślna kierująca ruch do domyślnego wycinka sieci internetowej.
Sprawdź, czy na urządzeniu jest skonfigurowany profil służbowy.
Włączanie korzystania z funkcji podziału sieci za pomocą kontrolera zasad urządzeń
Aby przetestować działanie podziału sieci 5G:
- Sprawdź, czy sesja PDU została nawiązana z segmentem sieciowym przedsiębiorstwa (np. za pomocą konkretnego adresu IP) i czy aplikacje w profilu służbowym korzystają z tej sesji PDU.
- Sprawdź, czy została utworzona osobna sesja PDU z domyślnym wycinkiem sieci internetowej i czy aplikacje w profilu osobistym korzystają z tej sesji.
Dodatkowa sprzedaż segmentacji sieci 5G
Funkcja dodatkowej sprzedaży podziału sieci 5G, dostępna od Androida 14-QPR1, umożliwia operatorom oferowanie użytkownikom ulepszonych możliwości sieci (opóźnienia i przepustowość) za pomocą podziału sieci 5G.
Funkcja dodatkowej sprzedaży podziału sieci 5G korzysta z odpowiedzi TS.43 z serwera uprawnień operatora, aby kierować przepływem zakupu. Operatorzy mogą użyć odpowiedzi, aby określić adres URL widoku internetowego zakupu operatora, wysłać dodatkowe dane do widoku internetowego i wskazać, czy wycinek jest udostępniony i dostępny w sieci operatora.
Operatorzy mogą dostosowywać działanie funkcji zwiększania sprzedaży w przypadku podziału sieci 5G za pomocą konfiguracji operatora. Określają one, czy można wysyłać prośby o zakup, kiedy aplikacje mogą prosić o funkcje premium oraz jak długo platforma telefoniczna czeka na odpowiedzi od użytkownika lub sieci.
Funkcja dodatkowej sprzedaży podziału sieci 5G udostępnia interfejs o nazwie
DataBoostWebServiceFlow
,
który umożliwia komunikację między Androidem a widokiem internetowym operatora.
Rysunek 2 przedstawia proces zakupu dodatkowej usługi segmentacji sieci 5G:
Rysunek 2. Proces zakupu dodatkowej usługi segmentacji sieci 5G.
TS.43 entitlement process
Gdy użytkownik poprosi o zaawansowane funkcje sieciowe, platforma Telephony zażąda konfiguracji uprawnień do usługi w przypadku żądanej funkcji premium. Jeśli odpowiedź TS.43 jest prawidłowa, platforma telefoniczna używa pól z odpowiedzi HTTP do obsługi żądania zakupu.
Pola zakupu wycinka
Konfiguracja uprawnień TS.43 zawiera te pola zakupu wycinka:
- Stan uprawnienia
Klawisz:
EntitlementStatus
Typ:
int
Obsługiwane wartości:
0
(wyłączone),1
(włączone),2
(niezgodne),3
(wdrażanie),4
(uwzględnione)- Stan obsługi administracyjnej
Klawisz:
ProvStatus
Typ:
int
Obsługiwane wartości:
0
(nieudostępniony),1
(udostępniony),2
(niedostępny),3
(w trakcie)
Platforma telefoniczna wykorzystuje kombinację stanu uprawnień i stanu udostępniania, aby określić bieżący stan zakupu wycinka sieci. Wynik może być jednym z tych rodzajów:
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 uprawnień to 1
(włączony), a stan udostępniania to 0
(nieudostępniony), platforma telefoniczna wyświetla użytkownikowi powiadomienie o możliwości zakupu dodatku w widoku internetowym operatora. Tabela poniżej opisuje działanie platformy telefonicznej w przypadku różnych kombinacji wartości stanu udostępniania i uprawnień.
Stan udostępniania | |||||
---|---|---|---|---|---|
Nie udostępniono (0 ) |
Udostępniono (1 |
Niedostępne (2 ) |
W trakcie (3 ) |
||
Stan uprawnienia | Wyłączone (0 ) |
Niepowodzenie | Niepowodzenie | Niepowodzenie | Niepowodzenie |
Włączone (1 ) |
Pokaż WebView | Już mam ten produkt | Już mam ten produkt | W toku | |
Niekompatybilne (2 ) |
Niepowodzenie | Niepowodzenie | Niepowodzenie | Niepowodzenie | |
Provisioning (3 ) |
Błąd operatora | Błąd operatora | W toku | W toku | |
Wliczone w cenę (4 ) |
Błąd operatora | Już mam ten produkt | Już mam ten produkt | Błąd operatora |
Pola przepływu usługi
Odpowiedź TS.43 określa adres URL, dane użytkownika i typ treści, aby dostosować działanie widoku internetowego zakupu u operatora. Jeśli typ treści nie jest określony, adres URL jest wczytywany jako żądanie GET. Jeśli dane użytkownika istnieją, są dołączane do adresu URL jako parametr zapytania (np. https://www.android.com?encodedValue=Base64EncodedUserData
). Jeśli nie istnieją, adres URL jest używany w niezmienionej postaci (np. https://www.android.com
).
Jeśli typ zawartości jest określony w formacie JSON lub XML, adres URL jest wczytywany jako żądanie POST, a dane użytkownika (dekodowane, jeśli są zakodowane w Base64) są wysyłane jako dane żądania POST.
- URL
Klawisz:
ServiceFlow_URL
Typ:
String
Przykład:
"https://www.android.com"
- Dane użytkownika
Klawisz:
ServiceFlow_UserData
Typ:
String
Przykład:
"encodedValue=Base64EncodedUserData"
- Typ treści
Klawisz:
ServiceFlow_ContentsType
Typ:
String
Obsługiwane wartości:
0
(nieokreślone),1
(JSON),2
(XML)
Konfiguracje operatora
Poniżej znajdziesz konfiguracje operatora, które możesz dostosować, aby zmienić działanie funkcji dodatkowej sprzedaży w zakresie podziału sieci 5G.
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Lista obsługiwanych funkcji premium. To jest tablica liczb całkowitych
TelephonyManager.PremiumCapability
. Te funkcje premium mają taką samą wartość jak odpowiednia klasaNetworkCapabilities.NetCapability
. Jeśli zostanie zażądana funkcja premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu zakończy się niepowodzeniem z wynikiemCARRIER_DISABLED
.W Androidzie 14 obsługiwany jest tylko format
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Maksymalna dzienna liczba wyświetleń powiadomienia o dodatkowej sprzedaży użytkownikowi. Jeśli zostanie osiągnięty dzienny limit, powiadomienie o dodatkowej sprzedaży nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do północy następnego dnia. Żądania zakupu przesłane po osiągnięciu dziennego limitu maksymalnego kończą się niepowodzeniem i zwracają wynik
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Miesięczna maksymalna liczba wyświetleń powiadomienia o dodatkowej sprzedaży użytkownikowi. Jeśli miesięczny limit zostanie osiągnięty, powiadomienie o dodatkowej sprzedaży nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera uprawnień) będą ograniczane do pierwszego dnia kolejnego miesiąca. Prośby o zakup złożone po osiągnięciu miesięcznego limitu maksymalnego kończą się niepowodzeniem z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
Adres URL zakupu operatora zapasowego, który ma być wyświetlany użytkownikowi po kliknięciu powiadomienia o dodatkowej sprzedaży. Jeśli adres URL zakupu nie zostanie znaleziony w odpowiedzi TS.43 z serwera uprawnień, zamiast niego używana jest ta wartość. Jeśli ani adres URL z odpowiedzi TS.43, ani konfiguracja operatora nie są prawidłowe, żądanie zakupu kończy się niepowodzeniem z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Określa, czy można kupować funkcje premium, gdy urządzenie jest połączone z siecią LTE. Jeśli
true
, prośby o zakup można przesyłać zarówno w przypadku LTE, jak i New Radio (NR). Jeślifalse
, prośby o zakup można wysyłać tylko w przypadku NR, a prośby wysyłane w przypadku LTE kończą się niepowodzeniem z wynikiemPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
Czas, przez jaki użytkownikowi będzie wyświetlane powiadomienie o dodatkowej sprzedaży, zanim zostanie ono automatycznie anulowane. Gdy powiadomienie zostanie anulowane, kolejne żądania będą ograniczane i zwrócą wynik
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Czas, przez jaki kolejne prośby o zakup powinny być ograniczane po niepowodzeniu z powodu przekroczenia limitu czasu lub anulowania przez użytkownika. Jeśli użytkownik nie kliknie powiadomienia o dodatkowej ofercie zakupu w czasie określonym przez
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
lub jeśli anuluje lub zamknie powiadomienie, rozpocznie się odliczanie czasu oczekiwania. Gdy ten licznik jest aktywny, żądania zakupu kończą się niepowodzeniem z wynikiemPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Czas, przez jaki kolejne żądania zakupu powinny być ograniczane po niepowodzeniu z powodu operatora lub sieci. Jeśli kontrola uprawnień zakończy się niepowodzeniem, adres URL jest niedostępny lub adres URL zakupu u operatora wskazuje na niepowodzenie, rozpoczyna się odliczanie czasu oczekiwania. Gdy ten licznik czasu jest aktywny, prośby o zakup kończą się niepowodzeniem z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Czas, w którym sieć musi skonfigurować podział na potrzeby zakupu funkcji premium. W tym okresie kolejne żądania zakupu są blokowane i zwracają wynik
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Jeśli sieci nie uda się w odpowiednim czasie skonfigurować podziału sieci, aplikacje mogą ponownie poprosić o zakup funkcji premium. Telefonia nie uznaje zakupu za zakończony, dopóki nie zostanie wysłana odpowiednia konfiguracja podziału, niezależnie od tego, czy użytkownik zapłacił operatorowi, czy nie.
Interfejs JavaScript
Gdy użytkownik kliknie powiadomienie o wzmocnieniu sieci, wyświetli mu się obiekt WebView
z adresem URL zakupu u operatora. Operatorzy mogą używać interfejsów API udostępnianych w DataBoostWebServiceFlow
interfejsie JavaScript na swojej stronie zakupu, aby komunikować się z aplikacją do zakupu wycinka sieci.
Witryna przewoźnika może uzyskać dostęp do żądanej funkcji premium za pomocą metody
getRequestedCapability()
.
Jeśli zakup się powiedzie, witryna operatora musi powiadomić aplikację do zakupu wycinka sieci za pomocą notifyPurchaseSuccessful()
lub notifyPurchaseSuccessful(duration)
, gdzie duration
jest parametrem opcjonalnym wskazującym zamierzony czas trwania wycinka.
Jeśli zakup się nie powiedzie, witryna operatora musi powiadomić aplikację do zakupu wycinka za pomocą metody notifyPurchaseFailed(code, reason)
, gdzie code
to kod błędu wskazujący przyczynę niepowodzenia, a reason
to czytelna dla człowieka przyczyna niepowodzenia, jeśli kod błędu jest nieznany.
Jeśli żadna z tych metod odpowiedzi nie zostanie wywołana, zakup nie zostanie uznany za zakończony, a prośba o zakup w końcu wygaśnie.
Poniżej znajdziesz prawidłowe kody błędów, które mogą być zwracane przez witrynę przewoźnika w przypadku nieudanej transakcji:
FAILURE_CODE_UNKNOWN
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
FAILURE_CODE_AUTHENTICATION_FAILED
FAILURE_CODE_PAYMENT_FAILED
FAILURE_CODE_NO_USER_DATA
Po zakończeniu zakupu operator musi zaktualizować zasady URSP na urządzeniu użytkownika o PRIORITIZE_LATENCY
.