Począwszy od Androida 12 Android obejmuje obsługę TS.43 konfiguracji uprawnień do usługi. Jest to specyfikacja GSMA określająca etap weryfikacji uprawnień w przypadku aktywacji usług, w tym Voice-over-Wi-Fi (VoWi-Fi), Voice-over-LTE (VoLTE), SMS-ów przez IP (SMSoIP), aktywacji usług na urządzeniu (ODSA) i powiązanych z abonamentem danych eSIM urządzeń obsługujących dane eSIM.
Aby obsługiwać tę specyfikację, Android udostępnia funkcję upoważnień usługi IMS, która umożliwia dostawcy usług informowanie urządzeń mobilnych o stanie usług sieciowych podsystemu IP Multimedia Subsystem (IMS). Ta funkcja uprawnień pozwala urządzeniu wysyłać zapytania do serwera uprawnień operatora zgodnie ze specyfikacją GSMA TS.43 dotyczącą stanu upoważnienia IMS z wykorzystaniem uwierzytelniania EAP-AKA bez konieczności ręcznego wpisywania danych logowania przez użytkowników.
Operatorzy z serwerami upoważnień IMS mogą używać funkcji uprawnień usługi IMS do udostępniania usług. Wdrożenie tej funkcji przynosi takie korzyści:
- Obniża koszty testowania i certyfikacji dla operatorów, ponieważ z tej funkcji uprawnień można korzystać w wielu usługach i producentach OEM.
- Zmniejszają nakład pracy producentów urządzeń za pomocą standardowej aplikacji na Androida.
- Umożliwia producentom urządzeń i operatorom tworzenie kodu dla tej funkcji, ponieważ jest to funkcja open source.
- Zapewnia zarządzanie adresami alarmowymi dla przewoźników w Ameryce Północnej.
Architektura
Ilustracja poniżej opisuje architekturę i działanie funkcji uprawnień usługi IMS.
Rysunek 1. Architektura funkcji uprawnień TS.43
Jak widać na Rysunku 1, architektura funkcji upoważnienia usługi IMS obejmuje te komponenty:
service_entitlement
Biblioteka statyczna interfejsu API usługi TS.43: Ta biblioteka implementuje specyfikację TS.43, współpracuje z serwerem uprawnień operatora i udostępnia interfejsy API aplikacji w każdym przypadku użycia TS.43.Aplikacja kliencka
ImsServiceEntitlement
: ta aplikacja używa interfejsu Service API TS.43. Aplikacja implementuje elementy interfejsu, w tym komponenty WebView, które służą do renderowania portalu usług operatora, umożliwiając użytkownikom aktywowanie usług i interakcję z innymi komponentami Androida w celu kompleksowego zarządzania wrażeniami użytkownika.Więcej informacji o konfigurowaniu Androida do współpracy z serwerem uprawnień opartym na TS.43 operatora znajdziesz w artykule o aplikacji ImsServiceEntitlement.
Linie ponumerowane na rys. 1 pokazują, jak komponenty funkcji uprawnień do usługi IMS komunikują się ze sobą. Poniżej opisano każdy z nich:
(1) Aplikacja kliencka wywołuje interfejs API usługi TS.43, aby zainicjować żądanie uprawnienia do usługi.
(2) Interfejs API usługi TS.43 wysyła żądanie HTTP do serwera uprawnień operatora, aby zainicjować test EAP-AKA.
(3) Interfejs API usługi TS.43 wywołuje interfejsy telefoniczne API (na przykład getIccAuthentication
), aby wykonać test odpowiedzi EAP-AKA.
(4) Po zweryfikowaniu odpowiedzi EAP-AKA usługa TS.43 otrzymuje dane dotyczące uprawnień lub konfiguracji usługi z serwera uprawnień operatora.
(5) Usługa TS.43 zwraca do aplikacji klienckiej dane o uprawnieniach lub dane konfiguracji usługi.
(6) Aplikacja kliencka obsługuje dane i opcjonalnie renderuje portal usług operatora, aby użytkownik mógł dokończyć aktywację usługi.
Integracja
W tej sekcji opisano proces integracji biblioteki service_entitlement
z aplikacją ImsServiceEntitlement
.
Ponieważ nie ma zależności od interfejsów API Androida 12, bibliotekę service_entitlement
i aplikację ImsServiceEntitlement
można przenieść na starsze platformy Androida.
biblioteka service_entitlement
Biblioteka service_entitlement
jest statycznie połączona z aplikacją ImsServiceEntitlement app
, więc nie musisz wykonywać żadnych dodatkowych czynności, aby zintegrować ją z aplikacją ImsServiceEntitlement
.
Bibliotekę service_entitlement
można zintegrować z własnymi aplikacjami na potrzeby przypadków użycia TS.43, takich jak abonament danych czy ODSA. Można ją też zintegrować z aplikacją na potrzeby przypadków użycia uprawnień innych niż TS.43 na podstawie protokołu EAP-AKA.
Poniżej opisujemy interfejsy API, których należy używać w takich przypadkach:
- Aplikacja TS.43 korzystająca z protokołu HTTP TS.43 zaimplementowanego w bibliotece: używanie interfejsów API w klasie
ServiceEntitlement
- Aplikacja inna niż TS.43 korzystająca z protokołu EAP-AKA zaimplementowanego w bibliotece: użyj interfejsów API udostępnionych w klasie
EapAkaHelper
Aplikacja ImsServiceEntitlement
Domyślnie Android uwzględnia aplikację ImsServiceEntitlement
zainstalowaną na partycji produktu jako aplikację z podwyższonymi uprawnieniami. Aby skonfigurować aplikację, użyj tych kluczy CarrierConfig:
Klucz | Wartość |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
Adres URL serwera uprawnień operatora. Trzeba podać prefiks https:// . |
KEY_FCM_SENDER_ID_STRING |
Identyfikator nadawcy FCM operatora. Nie ustawiaj tej wartości, jeśli operator nie wymaga FCM. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Ustaw jako true , jeśli operator wymaga interfejsu internetowego, aby użytkownicy mogli rejestrować się w usłudze VoWiFi. Może to być na przykład zgoda na warunki korzystania z usługi lub
podanie adresu alarmowego.Jest to zwykle wymagane przez operatorów w Ameryce Północnej. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
Ustaw jako com.android.imsserviceentitlement/.WfcActivationActivity , jeśli KEY_SHOW_VOWIFI_WEBVIEW_BOOL ma wartość true . |
KEY_IMS_PROVISIONING_BOOL |
Ustaw na true , jeśli operator wymaga udostępniania sieci usług IMS (VoLTE/VoWiFi/SMSoIP) w tle.Jest to wymagane przez niektórych europejskich operatorów. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Ustaw jako true , jeśli KEY_IMS_PROVISIONING_BOOL ma wartość true . |
Ruch HTTP do serwera uprawnień i portalu internetowego operatora przechodzi przez sieć domyślną, na przykład domyślną mobilną transmisję danych lub Wi-Fi.
Partnerzy GMS: aplikacja do obsługi uprawnień TS.43 jest obsługiwana w Androidzie 12 zgodnie ze specyfikacją TS.43 w wersji 5.0 tych operatorów:
- USA: CSpire, US Cellular, Cellcom
- Francja: Orange
Dodatkowy interfejs systemu do obsługi administracyjnej IMS
W tej sekcji opisano, jak producenci OEM mogą obsługiwać dodatkowe elementy interfejsu systemu związane z udostępnianiem usług IMS (na przykład podczas wyświetlania powiadomienia o udostępnieniu VoWiFi).
Aplikacja ImsServiceEntitlement
ustawia stan obsługi administracyjnej VoWiFi na platformie za pomocą systemowego interfejsu API ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
. Ten interfejs API jest też używany na potrzeby VoLTE (z KEY_VOLTE_PROVISIONING_STATUS
) i SMSoIP (w KEY_SMS_OVER_IP_ENABLED
).
Interfejs systemu może następnie odczytywać stan obsługi administracyjnej za pomocą funkcji getProvisioningIntValue
lub przez zarejestrowanie wywołania zwrotnego w celu monitorowania zmiany stanu obsługi administracyjnej w registerProvisioningChangedCallback
.
Zastępowanie konfiguracji na potrzeby testowania
Użyj poniższych procedur, aby tymczasowo zmienić działanie aplikacji ImsServiceEntitlement
na potrzeby testowania. Szczegółowe informacje o zastępowaniu konfiguracji operatorów znajdziesz w artykule Zastępowanie konfiguracji operatorów.
Pomijam proces rejestracji VoWiFi
Aby pominąć proces rejestracji VoWiFi i zezwolić na bezpośrednie włączenie VoWiFi,
zastąp konfigurację operatora
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
i ustaw jej wartość na pusty ciąg znaków.
Pomijam udostępnianie IMS
Aby pominąć udostępnianie usług IMS i umożliwić użytkownikom włączanie takich usług bez obsługi administracyjnej sieci, zastąp konfigurację operatora KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
i ustaw jej wartość na false
.
Zmiana adresu URL serwera uprawnień
Aby zmienić adres URL serwera uprawnień, zastąp konfigurację operatora KEY_ENTITLEMENT_SERVER_URL_STRING
i ustaw jego wartość na oczekiwany ciąg adresu URL. Musisz uwzględnić prefiks https://
.
Zastępowanie konfiguracji operatorów
Od Androida 11 polecenia zastępowania konfiguracji operatora są wbudowane i dostępne z uprawnieniami użytkownika root.
Poniżej znajdziesz przykład zastępowania klucza konfiguracji operatora carrier_volte_provisioning_required_bool
i ustawienia jego wartości na false
. Możesz uruchomić to polecenie wiele razy, aby zastąpić wiele konfiguracji.
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
Aby wyczyścić wszystkie zastąpienia, użyj tego polecenia:
adb shell cmd phone cc clear-values
Aby uzyskać więcej informacji, uruchom to polecenie:
adb shell cmd phone cc