Na urządzeniach z Androidem 12 lub nowszym Android zapewnia obsługę dzielenia sieci 5G, czyli korzystania z wirtualizacji sieci w celu podziału pojedynczych połączeń sieciowych na wiele różnych połączeń wirtualnych, które zapewniają różne ilości zasobów dla różnych typów ruchu. Podział sieci 5G pozwala operatorom sieciowym przeznaczyć część jej części na udostępnianie określonych funkcji określonym segmentom klientów. Android 12 wprowadza następujące funkcje 5G enterprise slicing, które operatorzy sieci mogą udostępniać swoim klientom korporacyjnym:
Dzielenie urządzeń firmowych na potrzeby w pełni zarządzanych
W przypadku firm, które udostępniają swoim pracownikom w pełni zarządzane urządzenia, dostawcy sieci mogą udostępnić im co najmniej 1 aktywny wycinek sieci firmowej, do którego kierowany jest ruch na urządzeniach firmowych. Począwszy od Androida 12 Android umożliwia operatorom dostarczanie wycinków firmowych za pomocą reguł URSP zamiast konfigurowania ich przez punkty APN.
Dzielenie aplikacji biznesowych na urządzeniach z profilami służbowymi
W przypadku firm korzystających z rozwiązania profilu służbowego Android 12 umożliwia urządzeniom kierowanie ruchu ze wszystkich aplikacji w profilu służbowym do segmentu sieci korporacyjnej. Firmy mogą włączyć tę funkcję za pomocą kontrolera zasad dotyczących urządzeń (DPC).
Rozwiązanie dotyczące profilu służbowego zapewnia automatyczny poziom uwierzytelniania i kontroli dostępu, którego wymagają firmy, aby zapewnić, że tylko ruch z aplikacji korporacyjnych w profilu służbowym jest kierowany do segmentu sieci korporacyjnej. Nie trzeba modyfikować aplikacji w profilu służbowym, aby jawnie żądać wycinka sieci firmowej.
Jak działa dzielenie sieci 5G w AOSP
Android 12 obsługuje dzielenie sieci 5G przez dodanie bazy kodu usług telefonicznych w AOSP i moduł Tethering, który uwzględnia istniejące interfejsy API do łączenia, wymagane do podziału sieci.
Platforma telefonii na Androidzie udostępnia interfejsy HAL i telefonii, aby obsługiwać dzielenie na warstwy na podstawie żądań sieciowych przesłanych przez podstawowy kod sieciowy oraz funkcje dzielenia na warstwy 5G w modemie. Rysunek 1 przedstawia komponenty funkcji podziału sieci 5G.
Rysunek 1. Architektura sieci 5G w AOSP.
Platforma telefonii i połączeń obsługuje:
- Konwertowanie żądań sieciowych dla kategorii wycinków na deskryptory ruchu, które są przekazywane do modemu w celu dopasowania ruchu URSP i wyboru trasy
- przełączenie się na sieć domyślną, jeśli kawałek sieci firmowej jest niedostępny;
- kierować ruch ze wszystkich aplikacji w profilu służbowym do odpowiedniego połączenia,
Obsługa dzielenia na poziomie przedsiębiorstwa
- wykrywanie obecności profilu służbowego na urządzeniu;
- Sprawdzanie uprawnień lub wskazówek dotyczących routingu udostępnionych przez DPC używany przez administratora IT firmy
Podstawowa usługa sieciowa obejmuje te zmiany w module tetheringu w Androidzie 12:
- Dodaje do modułu wiązania większość publicznych lub systemowych klas interfejsu API
android.net.*
Rozszerza granice modułu udostępniania połączenia, aby obejmowały:
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
Przenoszenie kodu sieci VPN z modułu tetheringu
Android 12 przenosi kod z tymi funkcjami do modułu tetheringu:
- Odbieranie żądań dotyczących połączeń sieciowych z aplikacji
- odbieranie żądań z systemu (na przykład „umieść te aplikacje na wycinku firmy” – funkcja dostępna w Androidzie 12);
- Wysyłanie żądań z systemu do kodu telefonicznego, który próbuje skonfigurować sieci lub segmenty, korzystając z interfejsu HAL API i modemu.
- informowanie netd o tym, jak kierować ruch na podstawie aplikacji (wprowadzone w Androidzie 12);
- Informowanie aplikacji o tym, co dzieje się z ich ruchem sieciowym za pomocą interfejsów API
ConnectivityManager
, takich jakNetworkCallback
,getActiveNetwork
igetNetworkCapabilities
.
Implementacja
Aby obsługiwać dzielenie pasma 5G na urządzeniu, musi ono mieć modem obsługujący interfejs IRadio 1.6 HAL z interfejsem API setupDataCall_1_6
. Ten interfejs API konfiguruje połączenie danych i zawiera te parametry, aby obsługiwać dzielenie 5G:
trafficDescriptor
: określa opis ruchu wysyłany do modemusliceInfo
: określa informacje dotyczące warstwy sieci, która ma być używana w przypadku przełączenia EPDG na 5GmatchAllRuleAllowed
: określa, czy dozwolone jest używanie domyślnej reguły URSP dopasowywania do wszystkich. Usługa telefonii ustawia tę wartość na „Prawda” w przypadku domyślnych sieci, ale nie w przypadku wycinków. Reguła dopasowania do wszystkich jest stosowana do domyślnych sieci. Gdy aplikacja poprosi o konkretny wycinek, który jest niedostępny, ten wycinek zostanie zgłoszony jako niedostępny. W przypadku aplikacji dla firm framework telefonii może przejść do sieci domyślnej, jeśli sieć firmowa jest niedostępna.
Modem musi też implementować interfejs API getSlicingConfig
, chyba że jest on zgłoszony jako nieobsługiwany przez interfejs API getHalDeviceCapabilities
.
Wymagania dla firm
Poniżej znajdziesz wymagania dotyczące korzystania z technologii dzielenia sieci 5G na urządzeniach w ramach wdrożenia Androida w firmie.
- Upewnij się, że urządzenia w pełni zarządzane lub urządzenia pracowników z utworzonym profilem służbowym są zgodne z 5G SA i mają modemy obsługujące interfejs API
setupDataCall_1_6
. - współpracę z partnerem operatora w zakresie konfiguracji i wydajności segmentów lub charakterystyki SLA;
Włączanie dzielenia 5G na urządzeniach z profilem służbowym
W przypadku urządzeń skonfigurowanych z profilami służbowymi podział sieci 5G jest domyślnie wyłączony w AOSP. Aby włączyć dzielenie sieci, administratorzy IT w firmie mogą włączać i wyłączać kierowanie ruchu z aplikacji na profilu służbowym do sieci firmowej na podstawie pojedynczego pracownika za pomocą EMM DPC, który korzysta z metody setPreferentialNetworkServiceEnabled
w interfejsie DevicePolicyManager
(DPM) API (wprowadzonym w Androidzie 12).
Dostawcy usług EMM, którzy korzystają z niestandardowych usług DPC, muszą zintegrować interfejs API DevicePolicyManager
, aby obsługiwać klientów korporacyjnych.
Reguły URSP
Ta sekcja zawiera informacje dla operatorów dotyczące konfigurowania reguł URSP dla różnych kategorii wycinków, takich jak ruch Enterprise, CBS, krótki czas oczekiwania i ruch o dużej przepustowości. Podczas konfigurowania reguł URSP dla różnych kategorii segmentów operatorzy muszą używać tych wartości dotyczących Androida.
ID | Wartość | Opis |
---|---|---|
Identyfikator systemu operacyjnego | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
Identyfikator OSId w przypadku Androida to identyfikator UUID w wersji 5 wygenerowany z użyciem przestrzeni nazw ISO-OID i nazwy „Android”. |
Operatorzy muszą skonfigurować reguły URSP dla każdego ruchu segmentu z komponentą opisu ruchu jako „Typ identyfikatora systemu operacyjnego + identyfikator aplikacji systemu operacyjnego”. Na przykład wartość sekcji „ENTERPRISE” musi być równa 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
.
Ta wartość jest konkatenacją identyfikatora OSId, długości identyfikatora OSAppId (0x0A
) oraz identyfikatora OSAppId.
Więcej informacji o typie komponentu opisu ruchu znajdziesz w dokumentacji 3GPP TS 24.526 Tabela 5.2.1 (w języku angielskim).
W tabeli poniżej opisano wartości identyfikatorów OSAppId w przypadku różnych kategorii wycinków.
Kategoria wycinka | Identyfikator aplikacji OS | Opis |
---|---|---|
ROZPOCZNIJ DZIAŁANIE | 0x454E5445525052495345 |
Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE”. |
ENTERPRISE2 | 0x454E544552505249534532 |
Identyfikator OSAppId to tablicowa reprezentacja ciągu znaków „ENTERPRISE2” |
ENTERPRISE3 | 0x454E544552505249534533 |
Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE3”. |
ENTERPRISE4 | 0x454E544552505249534534 |
Parametr OSAppId to tablica bajtów zawierająca ciąg „ENTERPRISE4”. |
ENTERPRISE5 | 0x454E544552505249534535 |
Identyfikator OSAppId to tablicowa reprezentacja ciągu znaków „ENTERPRISE5” |
CBS | 0x434253 |
Parametr OSAppId to tablica bajtów zawierająca ciąg „CBS”. |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 |
Parametr OSAppId to tablica bajtów zawierająca ciąg „PRIORITIZE_LATENCY”. |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 |
Identyfikator OSAppId jest tablicą bajtów reprezentującą ciąg „PRIORITIZE_BANDWIDTH” |
Przykładowe reguły URSP
W tabelach poniżej podajemy przykładowe reguły URSP dla przedsiębiorstw, CBS, niskich opóźnień, dużej przepustowości i domyślnego ruchu.
Enterprise 1
Obsługa Enterprise 1 jest dostępna w Androidzie 12 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE1:
Reguła URSP 1 (enterprise1) | |
---|---|
Pierwszeństwo | 1 (0x01) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Deskryptor wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | enterprise |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | enterprise |
Enterprise 2
Pomoc dotycząca wersji Enterprise 2 jest dostępna w Androidzie 13 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE2:
Reguła URSP 2 (enterprise2) | |
---|---|
Pierwszeństwo | 2 (0x02) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Deskryptor 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: DNN | enterprise2 |
Enterprise 3
Pomoc dotycząca Enterprise 3 jest dostępna w Androidzie 13 i nowszych. Poniżej znajdziesz przykładową regułę URSP dla ruchu ENTERPRISE3:
Reguła URSP 3 (enterprise3) | |
---|---|
Pierwszeństwo | 3 (0x03) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | enterprise3 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | enterprise3 |
Enterprise 4
Obsługa Enterprise 4 jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dla ruchu ENTERPRISE4:
Reguła URSP 4 (enterprise4) | |
---|---|
Pierwszeństwo | 4 (0x04) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | enterprise4 |
Deskryptor wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1. DNN | enterprise4 |
Enterprise 5
Pomoc dotycząca Enterprise 5 jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu ENTERPRISE5:
Reguła URSP 5 (enterprise5) | |
---|---|
Pierwszeństwo | 5 (0x05) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Deskryptor wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | Enterprise5 |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1. DNN | enterprise5 |
CBS
Obsługa CBS jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dla ruchu z CBS:
Reguła URSP nr 6 (CBS) | |
---|---|
Pierwszeństwo | 6 (0x06) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | cbs |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | cbs |
Małe opóźnienie
Obsługa niskiego opóźnienia jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu o niskim opóźnieniu:
Reguła URSP #7 (małe opóźnienie) | |
---|---|
Pierwszeństwo | 7 (0x07) |
Deskryptor ruchu 1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | opóźnienie |
Deskryptor wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1. DNN | opóźnienie |
Wysoka przepustowość
Obsługa wysokiej przepustowości jest dostępna w Androidzie 13 i nowszych. Oto przykład reguły URSP dotyczącej ruchu o wysokiej przepustowości:
Reguła URSP 8 (duża przepustowość) | |
---|---|
Pierwszeństwo | 8 (0x08) |
Opis ruchu #1 | |
Identyfikator systemu operacyjnego + typ identyfikatora aplikacji systemu operacyjnego | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YYYYYY |
Element 2. Sieć DNN | przepustowość |
Opis wyboru trasy 2 | |
Pierwszeństwo | 2 (0x02) |
Komponent 1: DNN | przepustowość |
Domyślny
Reguła URSP nr 9 (domyślna) | |
---|---|
Pierwszeństwo | 9 (0x09) |
Opis ruchu #1 | |
match-all | Nie dotyczy |
Opis wyboru trasy 1 | |
Pierwszeństwo | 1 (0x01) |
Komponent 1: S-NSSAI | SST:XX SD:YRRRRY |
Testowanie
Aby przetestować dzielenie sieci 5G, wykonaj ten test ręczny.
Aby skonfigurować urządzenie do testowania:
Upewnij się, że zasada URSP jest skonfigurowana z regułą niestandardową, która jest zgodna z kategorią przedsiębiorstwa, oraz że odpowiedni deskryptor wyboru trasy mapuje kategorię przedsiębiorstwa na ich segment, a także reguła domyślna kieruje ruch do domyślnego segmentu internetowego.
Upewnij się, że na urządzeniu jest skonfigurowany profil służbowy.
Włączanie dzielenia sieci za pomocą DPC
Aby przetestować działanie dzielenia sieci 5G:
- Sprawdź, czy sesja PDU została nawiązana z użyciem partycji przedsiębiorstwa (na przykład za pomocą określonego adresu IP) i czy aplikacje w profilu służbowym korzystają z tej sesji PDU.
- Sprawdź, czy utworzono osobną sesję PDU z domyślnym wycinkiem internetowym i czy aplikacje w profilu osobistym korzystają z sesji PDU.
Sprzedaż dodatkowa – fragment kodu 5G
Funkcja upsellingu 5G slicing, dostępna od Androida 14-QPR1, umożliwia operatorom oferowanie użytkownikom zaawansowanych funkcji sieciowych (opóźnień i przepustowości) dzięki dzieleniu sieci 5G.
Funkcja wycinków w sieci 5G wykorzystuje odpowiedź TS.43 z serwera uprawnień operatora do kierowania procesu zakupu. Operatorzy mogą użyć odpowiedzi, aby określić adres URL widoku zakupu w witrynie operatora, przesłać dodatkowe dane do widoku oraz wskazać, czy wycinek jest udostępniony i dostępny w sieci operatora.
Operatorzy mogą dostosowywać działanie funkcji upsellingu w ramach slicingu 5G za pomocą konfiguracji operatora, które określają, czy można przesyłać prośby o zakup, kiedy aplikacje mogą prosić o możliwości premium i jak długo framework telefonii czeka na odpowiedzi od użytkownika lub sieci.
Funkcja upsellingu 5G slicing zapewnia interfejs o nazwie DataBoostWebServiceFlow
, który umożliwia komunikację między Androidem a interfejsem przeglądarki operatora.
Rysunek 2 przedstawia proces zakupu sprzedaży dodatkowej z wykorzystaniem sieci 5G:
Rysunek 2. Proces zakupu z dodatkowymi opłatami za 5G.
TS.43 Proces nadawania uprawnień
Gdy użytkownik wysyła żądanie dotyczące rozszerzonych funkcji sieciowych, framework telefonii prosi o konfigurację 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, aby wysłać żądanie zakupu.
Polecenie Slice purchase fields
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
(niezgodny),3
(rezerwacja),4
(uwzględniony).- Stan obsługi administracyjnej
Klawisz:
ProvStatus
Typ:
int
Obsługiwane wartości:
0
(niezarezerwowane),1
(zarezerwowane),2
(niedostępne),3
(w trakcie).
Aby określić bieżący stan zakupu fragmentu, platforma telefonii korzysta z kombinacji stanu uprawnień i stanu obsługi. Wynik może być jeden z tych:
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łączone), a stan obsługi to 0
(nieobsługiwane), framework telefonii wyświetla użytkownikowi powiadomienie o możliwości zakupu ulepszonej wersji usługi za pomocą widoku przeglądarki operatora. Tabela poniżej opisuje działanie interfejsu Telephony w różnych kombinacjach wartości stanu udostępniania i uprawnień.
Stan wdrożenia | |||||
---|---|---|---|---|---|
Nie przydzielone (0 ) |
Zarządzanie (1 ) |
Niedostępny (2 ) |
W toku (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 | |
Niezgodny (2 ) |
Niepowodzenie | Niepowodzenie | Niepowodzenie | Niepowodzenie | |
Zarządzanie (3 ) |
Błąd operatora | Błąd operatora | W toku | W toku | |
Dołączone (4 ) |
Błąd operatora | Już mam ten produkt | Już mam ten produkt | Błąd operatora |
Pola przepływu usług
Odpowiedź TS.43 określa adres URL, dane użytkownika i typ treści, aby dostosować działanie przeglądarki webview w ramach 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ą one dołączane do adresu URL jako parametr zapytania (np. https://www.android.com?encodedValue=Base64EncodedUserData
). Jeśli takiego nie ma, używany jest adres URL w niezmienionej postaci (np. https://www.android.com
).
Jeśli typ treści jest określony w formacie JSON lub XML, adres URL jest ładowany jako żądanie POST, a dane użytkownika (dekodowane, jeśli są zakodowane w formacie POST64) są wysyłane jako dane dla żą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ślony),1
(JSON),2
(XML)
Konfiguracje operatora
Poniżej znajdziesz konfiguracje operatora umożliwiające dostosowanie działania funkcji upsellingu 5G.
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Lista obsługiwanych funkcji premium. To tablica int zawierająca elementy
TelephonyManager.PremiumCapability
. Te funkcje premium mają tę samą wartość co odpowiednia klasaNetworkCapabilities.NetCapability
. Jeśli żądana jest funkcja premium, która nie jest uwzględniona w tej konfiguracji, żądanie zakupu kończy się niepowodzeniem z wynikiemCARRIER_DISABLED
.W Androidzie 14 obsługiwana jest tylko
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Maksymalna dzienna liczba wyświetleń powiadomienia o możliwości dokupienia produktu użytkownikowi. Jeśli osiągnięta zostanie maksymalna dzienna liczba, powiadomienie o ulepszeniu nie będzie wyświetlane, a żądania zakupu (w tym żądania serwera dotyczące uprawnień) będą ograniczane do północy następnego dnia. Żądania zakupu przesłane po osiągnięciu maksymalnej dziennej liczby kont nie powiodą się w wyniku
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Maksymalna miesięczna liczba wyświetleń powiadomienia o sprzedaży dodatkowej użytkownikowi. Jeśli osiągnięto limit miesięczny, powiadomienie o ulepszeniu nie jest wyświetlane, a prośby o zakup (w tym prośby do serwera uprawnień) są ograniczane do pierwszego dnia następnego miesiąca. Żądania o zakup dokonane po osiągnięciu miesięcznego limitu kończą się niepowodzeniem z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
Adres URL zapasowego zakupu u operatora, który wyświetla się użytkownikowi po kliknięciu powiadomienia o upsellu. Jeśli w odpowiedzi TS.43 z serwera uprawnień nie ma adresu URL zakupu, zamiast niego używana jest ta wartość. Jeśli adres URL z odpowiedzi TS.43 ani konfiguracja operatora nie są prawidłowe, żądanie zakupu nie powiedzie się z wynikiem
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Określ, czy chcesz zezwalać na zakup funkcji premium, gdy urządzenie jest połączone z siecią Long-Term Evolution (LTE). Jeśli
true
, prośby o zakup można wysyłać zarówno w sieci LTE, jak i New Radio (NR). Jeślifalse
, prośby o zakup mogą być wysyłane tylko w sieci NR, a prośby wysłane w sieci LTE kończą się niepowodzeniem z wynikiemPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
Czas wyświetlania użytkownikowi powiadomienia o możliwości skorzystania z oferty specjalnej, 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 jaki kolejne żądania zakupu powinny być ograniczane po niepowodzeniu spowodowanym przekroczeniem limitu czasu lub anulowaniem przez użytkownika. Jeśli użytkownik nie kliknie powiadomienia o ulepszeniu zakupu w okresie określonym przez parametr
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
lub jeśli anuluje lub odrzuci powiadomienie, rozpocznie się odliczanie. Podczas trwania tego timera prośby o zakup 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 wystąpieniu błędu spowodowanego przez operatora lub sieć. 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. Podczas trwania tego licznika prośby o zakup kończą się niepowodzeniem z kodem błędu
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Czas, w którym sieć musi skonfigurować konfigurację podziału na potrzeby zakupu usługi premium. W tym czasie kolejne żądania zakupu są blokowane i zwracają wynik
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Jeśli sieci nie uda się w terminie skonfigurować konfiguracji dzielenia, aplikacje mogą ponownie poprosić o zakup funkcji premium. Usługa telefonii nie uzna zakupu za zakończony, dopóki nie zostanie wysłana odpowiednia konfiguracja dzielenia, niezależnie od tego, czy użytkownik zapłacił operatorowi czy nie.
Interfejs JavaScript
Gdy użytkownik kliknie powiadomienie o wzmocnieniu sieci, zobaczy obiekt WebView
z adresem URL zakupu u operatora. Operatorzy mogą używać interfejsów API udostępnionych w interfejsie JavaScript DataBoostWebServiceFlow
na stronie internetowej zakupu w celu komunikacji z aplikacją do zakupu w ramach usługi taryfowej.
Na stronie internetowej operatora można uzyskać żądaną funkcję premium za pomocą metody getRequestedCapability()
.
Jeśli zakup się powiedzie, witryna operatora musi powiadomić aplikację o zakupie za pomocą parametru notifyPurchaseSuccessful()
lub notifyPurchaseSuccessful(duration)
, gdzie duration
jest opcjonalnym parametrem wskazującym docelowy czas trwania okresu próbnego.
Jeśli zakup się nie powiedzie, strona internetowa przewoźnika musi powiadomić aplikację o zakupach cząstkowych za pomocą metody notifyPurchaseFailed(code, reason)
, gdzie code
to kod błędu wskazujący przyczynę niepowodzenia, a reason
to przyczyna niepowodzenia w formie zrozumiałej dla człowieka, jeśli kod błędu jest nieznany.
Jeśli nie wywołasz żadnej z tych metod odpowiedzi, zakup nie zostanie uznany za zrealizowany, a prośba o zakup zostanie w końcu odrzucona.
Poniżej znajdują się prawidłowe kody błędów, które strona internetowa przewoźnika może zwrócić w przypadku nieudanego zakupu:
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 przewoźnik musi zaktualizować zasady URSP, dodając do urządzenia użytkownika PRIORITIZE_LATENCY
.