W systemie Android 12 wprowadzono obsługę jednego modelu rejestracji w celu zapewnienia funkcji MMTEL i RCS. Model ten pozwala urządzeniom na zarządzanie wszystkimi funkcjami IMS poprzez pojedynczą rejestrację IMS zapewnianą przez ImsService urządzenia i spełnianie wymagań wprowadzanych przez niektórych operatorów telekomunikacyjnych. W porównaniu z modelem podwójnej rejestracji, w którym na jednym urządzeniu zarządza się wieloma rejestracjami IMS, pojedyncza rejestracja zmniejsza ruch w sieci operatora i zwiększa niezawodność.
Android 12 obsługuje ten model pojedynczej rejestracji poprzez architekturę z zestawem interfejsów API, które umożliwiają stosowi telefonicznemu AOSP zarządzanie zarówno funkcjami MMTEL zapewnianymi przez ImsService
, jak i funkcjami RCS udostępnianymi przez wybraną przez użytkownika aplikację do przesyłania wiadomości RCS. Aby obsługiwać pojedynczą rejestrację IMS, producenci urządzeń i dostawcy SoC muszą wdrożyć te interfejsy API, aby włączyć funkcje RCS w wybranej przez użytkownika aplikacji do przesyłania wiadomości RCS.
Rysunek 1 ilustruje stos IMS urządzenia przy zastosowaniu modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS korzystają z domyślnych funkcji ImsService dla MMTEL i RCS urządzenia w ramach jednej rejestracji IMS. Obejmuje to udostępnianie, przekazywanie komunikatów SIP i wymianę możliwości użytkowników RCS.
Rysunek 1. Architektura modelu pojedynczej rejestracji
Android 11 i starsze wersje obsługują tylko model podwójnej rejestracji zapewniający funkcje MMTEL i RCS, gdzie MMTEL jest zapewniany przez ImsService urządzenia, a funkcje RCS są implementowane na górze i niezależnie zarządzają własnym stosem IMS i połączeniem z siecią operatora.
Rysunek 2 ilustruje architekturę modelu podwójnej rejestracji. W tym modelu każda aplikacja odpowiada za połączenie się z siecią operatora i ustanowienie rejestracji IMS dla funkcji MMTEL i RCS. Usługa ImsService urządzenia implementuje MMTEL, wykorzystuje połączenie danych IMS urządzenia z siecią operatora i działa niezależnie od innych aplikacji RCS.
Rysunek 2. Architektura modelu podwójnej rejestracji
Interfejsy API pojedynczej rejestracji IMS
Urządzenia dostępne u operatorów wymagających pojedynczej rejestracji IMS muszą obsługiwać interfejsy API pojedynczej rejestracji IMS i definiować funkcję Androida PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
. Rysunek 3 przedstawia interfejsy API obsługujące pojedynczą rejestrację IMS.
Rysunek 3. Powierzchnie API wysokiego poziomu obsługujące pojedynczą rejestrację IMS
Urządzenia z systemem Android obsługujące pojedynczą rejestrację IMS w ramach stosu telefonicznego AOSP muszą obsługiwać wszystkie interfejsy API AOSP opisane w poniższej tabeli.
Powierzchnia API | Interfejsy API aplikacji RCS | Interfejsy API IMS dostawcy | Opis |
---|---|---|---|
Udostępnianie RCS | Menedżer zaopatrzenia | ImsConfigImplBase | Umożliwia producentowi OEM lub operatorowi udostępnienie aplikacji umożliwiającej aktualizację stanu udostępniania RCS, jeśli przewoźnik korzysta z zastrzeżonego mechanizmu uprawnień operatora. ImsService musi także obsługiwać standardowy serwer AutoConfigurationServer (ACS) w celu udostępniania usług operatorom, którzy nie korzystają z zastrzeżonego mechanizmu. |
Przekazywanie wiadomości SIP | Menedżer SipDelegate | SipTransportImplBase | Umożliwia aplikacji RCS najpierw skojarzenie określonych znaczników funkcji RCS z urządzeniem ImsService , a następnie wysyłanie i odbieranie wiadomości SIP oraz aktualizacji rejestracji IMS powiązanych z tymi znacznikami funkcji RCS. |
Dedykowane powiadomienia na okaziciela | Menedżer połączeń | Odpowiedź na połączenie danych | Zezwala aplikacji na nasłuchiwanie powiadomień QoS w gnieździe powiązanym z określonym portem lokalnym. |
Uwierzytelnianie GBA | żądanie uwierzytelnienia bootstrap | Usługa GBa | Umożliwia aplikacji RCS uwierzytelnianie za pomocą kluczy sieciowych i dostępu używanych w funkcjach RCS, takich jak przesyłanie plików. |
Wymiana możliwości użytkowników RCS | Menedżer ImsRcs | RcsCapabilityExchangeImplBase | Zapewnia AOSP możliwość wysyłania swoich możliwości MMTEL i RCS do dostawcy ImsService, aby można je było opublikować w ramach jednego podmiotu w sieci w celu wymiany możliwości użytkowników RCS. Umożliwia także innym aplikacjom zainteresowanym możliwościami RCS jednego lub większej liczby kontaktów wysyłanie do sieci zapytań o możliwości RCS kontaktów. |
Bezpieczeństwo i uprawnienia
W Androidzie 12 wprowadzono następujące uprawnienia, które mają zapewnić bezpieczny dostęp do sieci operatora i danych użytkownika:
-
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
-
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
Uprawnienie android.permission.PERFORM_IMS_SINGLE_REGISTRATION
musi zostać zdefiniowane przez aplikację do przesyłania wiadomości z funkcjami RCS. Aby to zezwolenie zostało przyznane, muszą być spełnione następujące warunki:
- Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest preinstalowana na urządzeniu i ma dostęp do uprzywilejowanych uprawnień
- Aplikację należy ustawić jako domyślną rolę SMS użytkownika za pomocą
RoleManager
Jeśli oba te warunki nie zostaną spełnione, aplikacji odmówi się dostępu do uprawnienia android.permission.PERFORM_IMS_SINGLE_REGISTRATION
. Oznacza to, że aplikacje innych firm nie mogą uzyskiwać dostępu do interfejsów API pojedynczej rejestracji RCS, ponieważ wymagają one certyfikatu operatora na urządzeniu.
Uprawnienie android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
przyznane aplikacji, która ma również uprawnienie READ_CONTACTS, umożliwia aplikacji żądanie możliwości RCS numerów telefonów za pomocą RcsUceAdapter
. Aby to zezwolenie zostało przyznane, muszą być spełnione następujące warunki:
- Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest preinstalowana na urządzeniu i ma dostęp do uprzywilejowanych uprawnień.
Aplikację należy zdefiniować jako jedną z następujących ról
RoleManager
:- Domyślna aplikacja do przesyłania wiadomości: ustawiana przez użytkownika.
- Domyślna aplikacja dialera: ustawiana przez użytkownika.
- Domyślna aplikacja do kontaktów: rola wprowadzona w systemie Android 12, która umożliwia producentowi OEM zdefiniowanie nazwy pakietu za pomocą wartości nakładki urządzenia
config_systemContacts
, która musi odpowiadać aplikacji kontaktów na urządzeniu. Ta aplikacja otrzymuje następnie rolę kontaktów.
Aby uzyskać dostęp do IMS APN za pomocą ConnectivityManager
w celu skonfigurowania ruchu danych i zarządzania nim, aplikacje muszą również zażądać pozwolenia android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
.
Przykłady i źródło
Android udostępnia aplikację w AOSP, która implementuje testową aplikację do przesyłania wiadomości z podstawową obsługą wiadomości RCS do celów testowania i programowania. Aplikację można znaleźć pod testapps/TestRcsApp
. Gdy aplikacja jest zainstalowana na urządzeniu, można ją ustawić jako domyślną aplikację do przesyłania wiadomości użytkownika i będzie ona posiadać uprawnienia wymagane do uzyskania dostępu do interfejsów API pojedynczej rejestracji IMS.
Android udostępnia także przykładową implementację ImsService dla RCS. Kod źródłowy znajduje się w /testapps/ImsTestService
.
Realizacja
Aby uzyskać więcej informacji na temat wdrożenia, pobierz rejestrację pojedynczą IMS w systemie Android .
Walidacja
Aby zweryfikować wdrożenie pojedynczej rejestracji IMS, wykonaj następujące czynności:
- Upewnij się, że zestaw testów CtsTelephonyTestCases CTS przeszedł pomyślnie.
- Zainstaluj i uruchom aplikację TestRcsApp , aby podczas integracji uruchamiać podstawowe przypadki testowe z pojedynczą rejestracją.
- Zdać certyfikację przewoźnika w przypadku testów pojedynczej rejestracji IMS.