Android 12 wprowadza obsługę pojedynczego modelu rejestracji w celu udostępniania funkcji MMTEL i RCS. Ten model umożliwia zarządzanie wszystkimi funkcjami IMS na urządzeniach za pomocą jednej rejestracji IMS udostępnianej przez usługę ImsService urządzenia oraz spełnianie wymagań wprowadzonych przez niektórych operatorów telekomunikacyjnych. W porównaniu z modelem podwójnej rejestracji, w której przypadku 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 rejestracji w ramach architektury z zestawem interfejsów API, które umożliwiają stosowi telefonii AOSP zarządzanie funkcjami MMTEL udostępnianymi przez ImsService
oraz funkcjami RCS udostępnianymi przez wybraną przez użytkownika aplikację do obsługi RCS. Aby obsługiwać rejestrację IMS, producenci urządzeń i dostawcy układów SoC muszą zaimplementować te interfejsy API, aby włączyć funkcje RCS w wybranej przez użytkownika aplikacji do obsługi RCS.
Rysunek 1 przedstawia pakiet IMS urządzenia w przypadku modelu pojedynczej rejestracji IMS. Wszystkie aplikacje IMS korzystają z domyślnej usługi ImsService urządzenia do obsługi funkcji MMTEL i RCS w ramach pojedynczej rejestracji IMS. Obejmuje to: provisioning, przekierowywanie wiadomości SIP i wymiana 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 w celu udostępniania funkcji MMTEL i RCS. MMTEL jest udostępniana przez usługę ImsService, a funkcje RCS są implementowane na poziomie wyższym i niezależnie zarządzają własnym stosem IMS oraz połączeniem z siecią operatora.
Rysunek 2 przedstawia architekturę modelu podwójnej rejestracji. W tym modelu każda aplikacja odpowiada za nawiązywanie połączenia z siecią operatora i rejestrację w usłudze IMS w celu korzystania z funkcji MMTEL i RCS. Usługa ImsService na urządzeniu implementuje MMTEL, korzysta z połączenia 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 rejestracji pojedynczego urządzenia IMS
Urządzenia, które są dostępne u operatorów wymagających jednorazowej rejestracji IMS, muszą obsługiwać interfejsy API jednorazowej rejestracji IMS i definiować funkcję Androida PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
.
Rysunek 3 przedstawia interfejsy API obsługujące pojedynczą rejestrację w IMS.
Rysunek 3. Interfejsy API na wysokim poziomie, które obsługują pojedynczą rejestrację IMS
Urządzenia z Androidem, które obsługują rejestrację IMS w ramach pakietu telefonicznego AOSP, muszą obsługiwać wszystkie interfejsy API AOSP opisane w tabeli poniżej.
Powierzchnia interfejsu API | Interfejsy API aplikacji RCS | Interfejsy IMS dostawców | Opis |
---|---|---|---|
Wdrażanie RCS | ProvisioningManager | ImsConfigImplBase | Umożliwia OEM-owi lub operatorowi sieci udostępnienie aplikacji, która zaktualizuje stan obsługi RCS, jeśli operator korzysta z własnego mechanizmu uprawnień. Usługa ImsService musi też obsługiwać standardowy serwer AutoConfigurationServer (ACS) do obsługiwania operatorów, którzy nie korzystają z własnego mechanizmu. |
Przekazywanie wiadomości SIP | SipDelegateManager | SipTransportImplBase | Umożliwia aplikacji RCS najpierw powiązanie określonych tagó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 tagami funkcji RCS. |
Powiadomienia dotyczące dedykowanych nośników | ConnectivityManager | DataCallResponse | Umożliwia aplikacji odbiór powiadomień QoS na gnieździe powiązanym z konkretnym portem lokalnym. |
Uwierzytelnianie GBA | bootstrapAuthenticationRequest | GbaService | Umożliwia aplikacji RCS uwierzytelnianie się w sieci i używanie kluczy dostępu do funkcji RCS, takich jak przesyłanie plików. |
Wymiana danych o użytkownikach RCS | ImsRcsManager | RcsCapabilityExchangeImplBase | Umożliwia AOSP wysyłanie funkcji MMTEL i RCS do usługi ImsService dostawcy, aby można je było opublikować w ramach jednego elementu w sieci w celu wymiany informacji o możliwościach użytkownika RCS. Umożliwia też innym aplikacjom zainteresowanym możliwościami RCS co najmniej 1 kontaktu wysyłanie zapytań do sieci dotyczących tych możliwości. |
Zabezpieczenia i uprawnienia
Android 12 wprowadza te uprawnienia, aby zapewnić bezpieczny dostęp do sieci operatora i danych użytkownika:
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
Aplikacja do obsługi wiadomości z funkcjami RCS musi zdefiniować uprawnienie android.permission.PERFORM_IMS_SINGLE_REGISTRATION
. Aby to uprawnienie zostało przyznane, muszą zostać spełnione te warunki:
- Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest wstępnie zainstalowana na urządzeniu i ma dostęp do uprawnień uprzywilejowanych.
- Aplikacja musi być ustawiona jako domyślna aplikacja do obsługi SMS-ów użytkownika za pomocą
RoleManager
.
Jeśli którykolwiek z tych warunków nie jest spełniony, aplikacji odmawia 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 RCS do rejestracji pojedynczych wiadomości, ponieważ wymagają one certyfikatu operatora na urządzeniu.
Uprawnienie android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
, gdy zostanie przyznane aplikacji, która ma też uprawnienie READ_CONTACTS, umożliwia aplikacji żądanie obsługi RCS numerów telefonów za pomocą RcsUceAdapter
.
Aby to uprawnienie zostało przyznane, muszą być spełnione te warunki:
- Aplikacja musi być zainstalowana jako aplikacja uprzywilejowana, co oznacza, że jest wstępnie zainstalowana na urządzeniu i ma dostęp do uprawnień uprzywilejowanych.
Aplikacja musi być zdefiniowana jako jedna z tych
RoleManager
ról:- Domyślna aplikacja do obsługi wiadomości: ustawiana przez użytkownika.
- Domyślna aplikacja telefoniczna: wybierana przez użytkownika.
- Domyślna aplikacja kontaktów: rola wprowadzona w Androidzie 12, która umożliwia OEM-owi 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 APN IMS za pomocą ConnectivityManager
w celu konfigurowania i zarządzania ruchem danych, aplikacje muszą też poprosić o uprawnienia android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
.
Przykłady i źródło
Android udostępnia w AOSP aplikację testową do obsługi wiadomości z podstawową obsługą wiadomości RCS na potrzeby testowania i rozwoju. Aplikację znajdziesz na stronie testapps/TestRcsApp
.
Po zainstalowaniu aplikacji na urządzeniu można ją ustawić jako domyślną aplikację do obsługi wiadomości użytkownika. Aplikacja będzie mieć uprawnienia wymagane do uzyskania dostępu do interfejsów API rejestracji pojedynczej IMS.
Android udostępnia też przykładową implementację usługi ImsService na potrzeby RCS. Kod źródłowy znajduje się w pliku /testapps/ImsTestService
.
Implementacja
Aby dowiedzieć się więcej, pobierz dokument IMS Single Registration w Androidzie.
Weryfikacja
Aby zweryfikować implementację pojedynczej rejestracji IMS:
- Upewnij się, że zestaw testów CTS CtsTelephonyTestCases został zaliczony.
- Zainstaluj i uruchom aplikację TestRcsApp, aby przeprowadzić podstawowe testy pojedynczej rejestracji podczas integracji.
- Przejść certyfikację operatora w przypadku testów rejestracji pojedynczej IMS.