Anpassen des Geräteverhaltens für Benutzer mit Ungleichgewicht

Android-Geräte ohne Datenausgleich lassen den Netzwerkverkehr durch und erfordern von Netzbetreibern und Telekommunikationsunternehmen die Implementierung von Risikominderungsprotokollen. Android implementiert eine generische Lösung, die es Netzbetreibern und Telekommunikationsunternehmen ermöglicht, anzuzeigen, wenn ein Gerät nicht mehr im Gleichgewicht ist.

Die Android-Plattform bietet eine Standard-Carrier-App mit einem Standardverhalten zur Verkehrsminderung basierend auf dem Captive-Portal-Erkennungssignal. Darüber hinaus bietet es Netzbetreibern und OEMs die Möglichkeit, das Verhalten kostengünstig und mit großer Flexibilität anzupassen.

Beispiele und Quelle

Die Standard-Carrier-App befindet sich unter platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementierung

Die Standard-Anbieter-App ist so konfiguriert, dass sie nicht konfigurierten Anbietern sofort ein besseres Erlebnis bietet. Netzbetreiber können dieses Standardverhalten verwenden. Sie können das Standardverhalten auch überschreiben, indem sie Signal-Aktions-Zuordnungen zur Carrier-Konfigurations-XML-Datei hinzufügen. Sie können entscheiden, nicht die Standard-App zu verwenden und stattdessen UICC-Berechtigungen mit ihrer eigenen eigenständigen Carrier-App zu nutzen.

Einführung in die Implementierung

Signale

Das Android-Framework unterstützt die Konfiguration von Aktionen für die folgenden parametrisierten Signale:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Diese Signale befinden sich in frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Unterstützte Aktionen

Die Standard-Carrier-App definiert eine Reihe unterstützter Aktionen, die unterstützten Signalen zugeordnet werden können. Diese sind in CarrierActionUtils.java definiert:

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

Hinweis: Wenn ein Netzbetreiber seine eigene eigenständige App implementiert, kann er die Unterstützung für andere als die in diesem Abschnitt genannten Signale implementieren. Sie können auch ihre eigenen Aktionen definieren und konfigurieren.

Standardmäßige Signal-Aktions-Zuordnungen

Konfigurieren Sie Standardaktionen, indem Sie diesem Prozess folgen:

  1. Definieren Sie einen Schlüssel für unterstützte Signale.

    Die Standardsignal-zu-Aktionszuordnungen sind in CarrierConfigManager.java definiert. Jedes der unterstützten Signale hat einen Schlüssel:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
    
  2. Ordnen Sie Signaltasten Standardaktionen zu.

    Den Signalschlüsseln sind die Standardaktions-IDs zugeordnet:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    //4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    Das Telefonie-Framework ordnet diese Aktionen den entsprechenden Signalen zu.

Überschreiben von Standardaktionen

Sie können benutzerdefinierte Aktionen für unterstützte Signale in der Carrier-Config-XML-Datei definieren, indem Sie den Signalschlüsseln (definiert in CarrierConfigManager.java ) Aktions-IDs zuordnen. Die folgende Zuordnung deaktiviert beispielsweise gemessene APNs und zeigt bei der Umleitung eine Portalbenachrichtigung an:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

Das Telefonie-Framework lädt diese Konfigurationen und überschreibt Standardaktionen.

Validierung

Für diese Funktion gibt es keine CTS-, CTS-Verifier- oder GTS-Tests.

Verwenden Sie diese manuellen Validierungstests, um die Funktion zu validieren:

  1. Validieren Sie die Benachrichtigung über ein Signalungleichgewicht des Geräts des Telekommunikationsunternehmens.
  2. Überprüfen Sie die Drosselung der Datenverkehrsumleitung bei Ungleichgewicht und ausgeschaltetem WLAN.
  3. Stellen Sie sicher, dass der Netzwerkverkehr abgelehnt wird und die Benutzeroberfläche für Benachrichtigungen angezeigt wird, wenn das Gleichgewicht gestört ist.
  4. Validieren Sie die Sprachanruf-/VoLTE-Funktion während eines Ungleichgewichts.
  5. Stellen Sie sicher, dass Videoanrufe im Ungleichgewichtszustand blockiert sind.
  6. Stellen Sie bei aktiviertem WLAN sicher, dass der Benutzer weiterhin im Internet surfen kann und dass der Browsing-Verkehr den Netzwerkverkehr nicht aktiviert, während er sich im Ungleichgewichtszustand befindet.
  7. Validieren Sie Wi-Fi-, WFC- und Bluetooth-Funktionen bei Ungleichgewichten.
  8. Schalten Sie WLAN aus. Stellen Sie sicher, dass die Benutzeroberfläche für Ungleichgewichtsbenachrichtigungen angezeigt wird und dass der normale Browserverkehr nicht auf die Registrierungswebsite des Telekommunikationsunternehmens umgeleitet wird. Vergewissern Sie sich, dass durch Klicken auf den Link in der Benachrichtigungsbenutzeroberfläche der Browser zur Telekommunikationsregistrierungswebsite gelangt.
  9. Stellen Sie sicher, dass durch das Umschalten des Flugmodus der Status der Verkehrsdrosselung nicht zurückgesetzt wird.
  10. Stellen Sie sicher, dass durch den Austausch einer in Betrieb befindlichen SIM-Karte der Status des Netzwerkverkehrs zurückgesetzt wird.
  11. Stellen Sie sicher, dass durch das erneute Einsetzen der SIM-Karte mit Ungleichgewicht die Verkehrsumleitung neu gestartet wird und eine erneute Drosselung des Netzwerkverkehrs erreicht wird.
  12. Stellen Sie sicher, dass durch einen Neustart des Telefons die Umleitung erneut aktiviert wird und die Verkehrsdrosselung und die Benachrichtigungs-Benutzeroberfläche wiederhergestellt werden.
  13. Tippen Sie auf die Benachrichtigung „Captiveportal“. Stellen Sie sicher, dass eine eingeschränkte Netzwerkverbindung besteht, damit der Benutzer Guthaben hinzufügen kann.
  14. Stellen Sie sicher, dass das Auffüllen oder Reaktivieren des SIM-Guthabens dazu führt, dass der Datenverkehr im Mobilfunknetz wiederhergestellt wird und dass die Telekommunikationsverbindung und die Meldung „Kein Guthaben vorhanden“ verschwinden.
  15. Plausibilitätstest nach Wiederherstellung des Datendienstes.

Die Standard-App bietet einige Beispiele für Unit-Tests und ein Skript zu deren Ausführung (siehe tests/runtest.sh ). Wenn Sie eine angepasste Version oder ein angepasstes Verhalten implementieren, sollten Sie diese Anpassungen in dedizierten Komponententests widerspiegeln.