Ab Android 12 unterstützt Android die TS.43-Spezifikation zur Konfiguration von Dienstberechtigungen. Diese Spezifikation der GSMA definiert den Schritt zur Überprüfung der Berechtigung für die Aktivierung von Diensten wie Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), On-Device Service Activation (ODSA) von eSIM-Begleitgeräten (die mit dem anfragenden Gerät verknüpft sind) und Informationen zu Datentarifen.
Zur Unterstützung dieser Spezifikation bietet Android eine Funktion für IMS-Dienstberechtigungen, mit der ein Dienstanbieter Mobilgeräte über den Status von IMS-Netzwerkdiensten (IP Multimedia Subsystem) informieren kann. Mit dieser Berechtigungsfunktion kann das Gerät den Berechtigungsserver des Mobilfunkanbieters gemäß der GSMA TS.43-Spezifikation nach dem IMS-Berechtigungsstatus fragen. Dabei wird dieEAP-AKA-Authentifizierung verwendet, ohne dass Nutzer Anmeldedaten manuell eingeben müssen.
Mobilfunkanbieter mit IMS-Berechtigungsservern können die Funktion für IMS-Dienstberechtigungen für die Dienstbereitstellung verwenden. Die Einführung der Funktion bietet folgende Vorteile:
- Reduziert die Test- und Zertifizierungskosten für Mobilfunkanbieter, da diese Berechtigungsfunktion für mehrere Produkte und OEMs verwendet werden kann.
- Reduziert den Entwicklungsaufwand für Gerätehersteller durch eine Standard-Android-App.
- Ermöglicht Geräteherstellern und Mobilfunkanbietern, Code für die Funktion beizutragen, da sie Open Source ist.
- Bietet eine Notadressenverwaltung für nordamerikanische Mobilfunkanbieter.
Architektur
Die folgende Abbildung beschreibt die Architektur und das Verhalten der Funktion für IMS-Dienstberechtigungen.
Abbildung 1 : Architektur der TS.43-Berechtigungsfunktion
Wie in Abbildung 1 dargestellt, umfasst die Architektur der Funktion für IMS-Dienstberechtigungen die folgenden Komponenten:
service_entitlementStatische Bibliothek der TS.43 Service API: Diese Bibliothek implementiert die TS.43-Spezifikation, interagiert mit dem Berechtigungsserver eines Mobilfunkanbieters und stellt App-orientierte APIs für jeden TS.43-Anwendungsfall bereit.ImsServiceEntitlementClient-App: Diese App verwendet die TS.43 Service API. Die App implementiert UI-Elemente, einschließlich Webviews zum Rendern des Dienstportals des Mobilfunkanbieters, damit Nutzer Dienste aktivieren können. Außerdem interagiert sie mit anderen Android-Komponenten, um die Nutzererfahrung durchgängig zu verwalten.Weitere Informationen zum Konfigurieren von Android für die Verwendung mit einem TS.43-basierten Berechtigungsserver eines Mobilfunkanbieters finden Sie unter ImsServiceEntitlement-App.
Die nummerierten Linien in Abbildung 1 zeigen, wie die Komponenten der Funktion für IMS-Dienstberechtigungen miteinander kommunizieren. Im Folgenden werden die einzelnen Schritte beschrieben:
(1) Die Client-App ruft die TS.43 Service API auf, um eine Dienst berechtigungsanfrage zu initiieren.
(2) Die TS.43 Service API sendet eine HTTP-Anfrage an den Berechtigungsserver des Mobilfunkanbieters, um eine EAP-AKA-Challenge zu initiieren.
(3) Die TS.43 Service API ruft Telefonie-APIs auf (z. B.
getIccAuthentication), um die EAP-AKA-Challenge-Antwort zu vervollständigen.
(4) Der TS.43-Dienst empfängt Dienstberechtigungs- oder Konfigurationsdaten vom Berechtigungsserver des Mobilfunkanbieters, nachdem die EAP-AKA-Antwort überprüft wurde.
(5) Der TS.43-Dienst gibt die Dienstberechtigungs- oder Konfigurationsdaten an die Client-App zurück.
(6) Die Client-App verarbeitet die Daten und rendert optional das Dienstportal des Mobilfunkanbieters damit der Nutzer die Dienstaktivierung abschließen kann.
Integration
In diesem Abschnitt wird der Prozess zur Integration der Bibliothek service_entitlement und der App ImsServiceEntitlement beschrieben.
Da es keine Android 12 API-Abhängigkeit gibt, können die Bibliothek service_entitlement und die App ImsServiceEntitlement auf niedrigere Android-Plattformen zurückportiert werden.
Bibliothek „service_entitlement“
Da die Bibliothek service_entitlement statisch mit der App ImsServiceEntitlement verknüpft ist, sind keine zusätzlichen Schritte erforderlich, um die Bibliothek in die App ImsServiceEntitlement zu integrieren.
Die Bibliothek service_entitlement kann in Ihre eigenen Apps für TS.43-Anwendungsfälle wie Datentarife und ODSA integriert werden. Die Bibliothek kann auch in eine App für Berechtigungsanwendungsfälle ohne TS.43-Spezifikation integriert werden, die auf dem EAP-AKA-Protokoll basieren.
Im Folgenden werden die APIs beschrieben, die für solche Anwendungsfälle verwendet werden können:
- TS.43-App mit dem in der Bibliothek implementierten TS.43 HTTP-Protokoll: Verwenden Sie die APIs in der Klasse
ServiceEntitlement. - App ohne TS.43-Spezifikation mit dem in der Bibliothek implementierten EAP-AKA-Protokoll: Verwenden Sie die APIs, die in der Klasse
EapAkaHelperverfügbar gemacht werden.
ImsServiceEntitlement-App
Standardmäßig ist die ImsServiceEntitlement App in
Android als privilegierte App in der Produktpartition installiert. Verwenden Sie die
folgenden CarrierConfig-Schlüssel, um die App zu konfigurieren:
| Schlüssel | Wert |
|---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
URL des Berechtigungsservers des Mobilfunkanbieters. Das Präfix https:// muss enthalten sein. |
KEY_FCM_SENDER_ID_STRING |
FCM-Absender-ID des Mobilfunkanbieters. Legen Sie diesen Wert nicht fest, wenn FCM vom Mobilfunkanbieter nicht benötigt wird. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Legen Sie true fest, wenn der Mobilfunkanbieter eine Webportal-UI benötigt, damit sich Nutzer für den VoWiFi-Dienst registrieren können. Beispielsweise um den Nutzungsbedingungen zuzustimmen oder eine Notadresse einzugeben.Dies ist in der Regel für Mobilfunkanbieter in Nordamerika erforderlich. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
Legen Sie com.android.imsserviceentitlement/.WfcActivationActivity fest, wenn KEY_SHOW_VOWIFI_WEBVIEW_BOOL auf true gesetzt ist. |
KEY_IMS_PROVISIONING_BOOL |
Legen Sie true fest, wenn der Mobilfunkanbieter die Netzwerkbereitstellung von IMS-Diensten (VoLTE/VoWiFi/SMSoIP) im Hintergrund erfordert.Dies ist für bestimmte europäische Mobilfunkanbieter erforderlich. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Legen Sie true fest, wenn KEY_IMS_PROVISIONING_BOOL auf true gesetzt ist. |
Der HTTP-Traffic zu einem Berechtigungsserver und Webportal eines Mobilfunkanbieters erfolgt über das Standardnetzwerk, z. B. die Standard-Mobilfunkdaten oder WLAN.
GMS-Partner:Die folgenden Mobilfunkanbieter werden von der TS.43-Berechtigungs-App in Android 12 gemäß der TS.43-Spezifikation v5.0 unterstützt:
- USA: CSpire, US Cellular, Cellcom
- Frankreich: Orange
Zusätzliche System-UI für die IMS-Bereitstellung
In diesem Abschnitt wird beschrieben, wie OEMs zusätzliche System-UI-Elemente im Zusammenhang mit der IMS-Dienstbereitstellung unterstützen können (z. B. wenn eine Benachrichtigung angezeigt wird, wenn VoWiFi bereitgestellt wird).
Die ImsServiceEntitlement App legt den VoWiFi-Bereitstellungsstatus mit der
ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
System-API auf der
Plattform fest. Diese API wird auch für VoLTE (mit KEY_VOLTE_PROVISIONING_STATUS) und SMSoIP (mit KEY_SMS_OVER_IP_ENABLED) verwendet.
Die System-UI kann den Bereitstellungsstatus dann mit
getProvisioningIntValue lesen oder einen Callback registrieren, um die Änderung des
Bereitstellungsstatus über registerProvisioningChangedCallback zu beobachten.
Konfigurationen für Tests überschreiben
Mit den folgenden Schritten können Sie das Verhalten der App ImsServiceEntitlement vorübergehend für Testzwecke ändern. Weitere Informationen zum Überschreiben von Mobilfunkanbieter
konfigurationen finden Sie unter Mobilfunkanbieterkonfigurationen überschreiben.
VoWiFi-Registrierung überspringen
Wenn Sie die VoWiFi-Registrierung überspringen möchten, damit VoWiFi direkt aktiviert werden kann,
überschreiben Sie die Mobilfunkanbieterkonfiguration
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING und legen Sie den Wert auf einen
leeren String fest.
IMS-Bereitstellung überspringen
Wenn Sie die IMS-Bereitstellung überspringen möchten, damit IMS-Dienste verfügbar sind und Nutzer solche Dienste ohne Netzwerkbereitstellung aktivieren können, überschreiben Sie die Mobilfunkanbieterkonfiguration
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL und legen Sie den Wert auf
false fest.
URL des Berechtigungsservers ändern
Wenn Sie die URL des Berechtigungsservers ändern möchten, überschreiben Sie die Mobilfunkanbieterkonfiguration
KEY_ENTITLEMENT_SERVER_URL_STRING und legen Sie den Wert auf den erwarteten URL
String fest. Das Präfix https:// muss enthalten sein.
Mobilfunkanbieterkonfigurationen überschreiben
Ab Android 11 sind Befehle zum Überschreiben der Mobilfunkanbieterkonfiguration integriert und mit Root-Berechtigungen verfügbar.
Der folgende Befehl ist ein Beispiel dafür, wie Sie den Konfigurationsschlüssel carrier_volte_provisioning_required_bool des Mobilfunkanbieters überschreiben und den Wert auf false festlegen können. Sie können den Befehl mehrmals ausführen, um mehrere Konfigurationen zu überschreiben.
adb rootadb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
Verwenden Sie den folgenden Befehl, um alle Überschreibungen zu löschen:
adb shell cmd phone cc clear-valuesFühren Sie den folgenden Befehl aus, um weitere Informationen zu erhalten:
adb shell cmd phone cc