Ab Android 12 unterstützt Android TS.43-Dienstberechtigung Konfiguration, eine GSMA-Spezifikation, die den Schritt zur Berechtigungsprüfung für die Aktivierung von Diensten, einschließlich Voice-over-WLAN (VoWi-Fi), Voice-over-LTE (VoLTE), SMS über IP (SMSoIP), Dienstaktivierung auf dem Gerät (ODSA) der eSIM Begleitgeräten (mit dem anfragenden Gerät verknüpft) und Datentarif Informationen.
Android bietet eine IMS-Dienstberechtigung, um diese Spezifikation zu unterstützen mit der ein Dienstanbieter Mobilgeräte über den Status IP Multimedia Subsystem (IMS)-Netzwerkdienste. Mit dieser Berechtigungsfunktion das Gerät, um den Server für Mobilfunkanbieter-Berechtigungen gemäß GSMA TS.43 abzufragen Spezifikation für den IMS-Berechtigungsstatus mithilfe von EAP-Authentifizierung (auch bekannt als EAP-Authentifizierung) ohne dass Nutzer ihre Anmeldedaten manuell eingeben müssen.
Mobilfunkanbieter mit IMS-Berechtigungsservern können die IMS-Dienstberechtigung verwenden für die Dienstbereitstellung. Die Einführung der Funktion bietet Folgendes: Vorteile:
- Geringere Test- und Zertifizierungskosten für Mobilfunkanbieter, da Die Berechtigungsfunktion kann für mehrere Produkte und OEMs verwendet werden.
- Reduziert den Entwicklungsaufwand für Gerätehersteller durch einen Standard Android-App
- Ermöglicht Geräteherstellern und Mobilfunkanbietern, Code für die Funktion beizusteuern da die Funktion Open Source ist.
- Bietet die Verwaltung von Notfalladressen für nordamerikanische Mobilfunkanbieter.
Architektur
In der folgenden Abbildung werden die Architektur und das Verhalten des IMS beschrieben. Dienstberechtigung.
Abbildung 1: Architektur der TS.43-Berechtigungsfunktionen
Wie in Abbildung 1 dargestellt, ist die Architektur der Funktion für die IMS-Dienstberechtigung umfasst die folgenden Komponenten:
service_entitlement
TS.43 Service API – statisch Mediathek: Diese Bibliothek implementiert die TS.43-Spezifikation, interagiert mit dem Berechtigungsserver und stellt appseitige APIs für jeden TS.43-Anwendungsfall bereit.ImsServiceEntitlement
Clientanwendung: Diese App verwendet die TS.43 Service API. Die App implementiert die UI. Elemente wie WebViews zum Rendern des Serviceportals des Netzbetreibers Dienste zu aktivieren und mit anderen Android-Komponenten zu interagieren, die User Experience von Anfang bis Ende.Weitere Informationen zur Konfiguration von Android für die Verwendung mit einem TS.43-basierten Berechtigungsserver des Mobilfunkanbieters, siehe ImsServiceEntitlement App.
Die nummerierten Linien in Abbildung 1 zeigen, wie die Komponenten des IMS-Dienstes Berechtigungsfunktion miteinander kommunizieren. Im Folgenden werden die einzelnen der Schritte entsprechend der Bezeichnung:
(1) Die Client-App ruft die TS.43-Dienst-API auf, um einen Dienst zu initiieren. Berechtigungsanfrage.
(2) Die TS.43-Dienst-API sendet eine HTTP-Anfrage an die Berechtigung des Mobilfunkanbieters. zur Initiierung einer EAP-Abfrage (auch bekannt als EAP-Abfrage).
(3) Die TS.43-Dienst-API ruft Telefonie-APIs auf, z. B.
getIccAuthentication
)
um die EAP-Challenge-Antwort abzuschließen.
(4) Der TS.43-Dienst empfängt Dienstberechtigungs- oder Konfigurationsdaten vom Berechtigungsserver des Mobilfunkanbieters gesendet, nachdem die EAP-Antwort bestätigt.
(5) Der TS.43-Dienst gibt die Dienstberechtigungs- oder Konfigurationsdaten zurück an die Client-App gesendet.
(6) Die Client-App verarbeitet die Daten und rendert optional die Serviceportal, über das der Nutzer die Dienstaktivierung abschließen kann.
Integration
In diesem Abschnitt wird die Integration von service_entitlement
beschrieben.
Bibliothek und der ImsServiceEntitlement
App.
Da es keine API-Abhängigkeit von Android 12 gibt,
service_entitlement
-Bibliothek und ImsServiceEntitlement
App können zurückportiert werden
auf ältere Android-Plattformen.
Bibliothek „service_entitlement“
Da die service_entitlement
-Bibliothek statisch mit der
ImsServiceEntitlement app
, für die Integration sind keine zusätzlichen Schritte erforderlich
Bibliothek in die ImsServiceEntitlement
App.
Die service_entitlement
-Bibliothek kann in Ihre eigenen Apps für TS.43 integriert werden.
wie Datentarife und ODSA. Die Bibliothek kann auch in ein
App für Nicht-TS.43-Berechtigungsanwendungsfälle basierend auf dem EAP-AKA-Protokoll.
Im Folgenden werden die APIs beschrieben, die in solchen Anwendungsfällen verwendet werden können:
- TS.43-Anwendung mit dem in der Bibliothek implementierten TS.43-HTTP-Protokoll:
APIs in der Klasse
ServiceEntitlement
verwenden - Nicht-TS.43-App, die das in der Bibliothek implementierte EAP-AKA-Protokoll verwendet: Verwenden Sie
Die in der Klasse
EapAkaHelper
bereitgestellten APIs
ImsServiceEntitlement-App
Standardmäßig enthält Android die ImsServiceEntitlement
-App, die im
Produktaufteilung als privilegierte App. Verwenden Sie zum Konfigurieren der App Folgendes:
CarrierConfig-Schlüssel:
Schlüssel | Wert |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
URL des Berechtigungsservers des Anbieters. Das Präfix https:// muss
enthalten. |
KEY_FCM_SENDER_ID_STRING |
FCM-Sender-ID des Mobilfunkanbieters Legen Sie diesen Wert nicht fest, wenn FCM nicht vom Mobilfunkanbieter erforderlich ist. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Legen Sie true fest, wenn der Mobilfunkanbieter eine Webportal-Benutzeroberfläche für Nutzer benötigt.
um sich für einen VoWLAN-Dienst zu registrieren. Die Zustimmung zu Nutzungsbedingungen und
oder eine Notfalladresse eingeben.Dies ist in der Regel von Mobilfunkanbietern in Nordamerika erforderlich. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
Festlegen auf
com.android.imsserviceentitlement/.WfcActivationActivity , wenn
KEY_SHOW_VOWIFI_WEBVIEW_BOOL hat den Wert true . |
KEY_IMS_PROVISIONING_BOOL |
Legen Sie true fest, wenn der Mobilfunkanbieter eine Netzwerkbereitstellung von IMS erfordert.
(VoLTE/VoWiFi/SMSoIP) im Hintergrund laufen.Bestimmte europäische Mobilfunkanbieter verlangen dies. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Legen Sie true fest, wenn KEY_IMS_PROVISIONING_BOOL
ist true . |
Der HTTP-Traffic zum Berechtigungsserver und zum Webportal eines Mobilfunkanbieters geht über den zum Beispiel ein Standardnetzwerk für mobile Daten oder WLAN.
GMD-Partner:Die folgenden Mobilfunkanbieter werden von der TS.43-Berechtigung unterstützt. für Android 12 gemäß TS.43 v5.0 Spezifikation:
- 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 unterstützen können. im Zusammenhang mit der IMS-Dienstbereitstellung, z. B. beim Anzeigen einer Benachrichtigung wenn VoWLAN bereitgestellt wird.
Die ImsServiceEntitlement
App legt den VoWLAN-Bereitstellungsstatus auf den
Plattform mithilfe der
ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
System-API. Diese API wird auch für VoLTE (mit
KEY_VOLTE_PROVISIONING_STATUS
) und SMSoIP (mit KEY_SMS_OVER_IP_ENABLED
).
Die System-UI kann den Bereitstellungsstatus dann mithilfe von
getProvisioningIntValue
oder indem Sie einen Callback registrieren, um die Änderung des Bereitstellungsstatus über
registerProvisioningChangedCallback
.
Konfigurationen für Tests überschreiben
Mit den folgenden Schritten können Sie das ImsServiceEntitlement
vorübergehend ändern
App-Verhalten zu Testzwecken. Weitere Informationen zum Überschreiben des Mobilfunkanbieters
finden Sie unter Mobilfunkanbieter überschreiben
Konfigurationen
VoWLAN-Registrierung überspringen
Um die VoWLAN-Registrierung zu überspringen und VoWLAN direkt zu aktivieren,
Konfiguration des Mobilfunkanbieters überschreiben
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
und legt seinen Wert auf einen leeren String fest.
IMS-Bereitstellung überspringen
Sie können die IMS-Bereitstellung überspringen, indem Sie IMS-Dienste verfügbar machen und Nutzern Folgendes ermöglichen:
solche Dienste ohne Netzwerkbereitstellung aktivieren, Konfiguration des Mobilfunkanbieters überschreiben
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
und legen Sie als Wert false
fest.
Berechtigungsserver-URL ändern
Wenn du die Berechtigungsserver-URL ändern möchtest, überschreibe die Konfiguration des Mobilfunkanbieters
KEY_ENTITLEMENT_SERVER_URL_STRING
und legen Sie als Wert den erwarteten URL-String fest. Sie müssen den Parameter
https://
.
Mobilfunkanbieterkonfigurationen überschreiben
Ab Android 11 sind Befehle zum Überschreiben der Konfiguration für Mobilfunkanbieter integriert und verfügbar mit Root-Berechtigungen.
Der folgende Befehl ist ein Beispiel für das Überschreiben des Konfigurationsschlüssels für den Mobilfunkanbieter
carrier_volte_provisioning_required_bool
und legen Sie dessen Wert auf false
fest. Ich
kann den Befehl mehrmals ausführen, um mehrere Konfigurationen zu überschreiben.
adb root
adb 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-values
Führen Sie den folgenden Befehl aus, um weitere Informationen abzurufen:
adb shell cmd phone cc