Podział sieci 5G

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.

Komponenty segmentacji 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:

  1. 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.

  2. Sprawdź, czy na urządzeniu jest skonfigurowany profil służbowy.

  3. Włączanie korzystania z funkcji podziału sieci za pomocą kontrolera zasad urządzeń

Aby przetestować działanie podziału sieci 5G:

  1. 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.
  2. 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:

Proces zakupu sprzedaży dodatkowej 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:

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 klasa NetworkCapabilities.NetCapability. Jeśli zostanie zażądana funkcja premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu zakończy się niepowodzeniem z wynikiem CARRIER_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śli false, 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 wynikiem PURCHASE_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 wynikiem PURCHASE_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:

Po zakończeniu zakupu operator musi zaktualizować zasady URSP na urządzeniu użytkownika o PRIORITIZE_LATENCY.