Personalizzazione del comportamento del dispositivo per gli utenti senza equilibrio

I dispositivi Android senza saldo dati consentono il traffico di rete, richiedendo agli operatori di telefonia mobile e alle società di telecomunicazioni di implementare protocolli di mitigazione. Android implementa una soluzione generica che consente agli operatori telefonici e alle società di telecomunicazioni di indicare quando un dispositivo è esaurito.

La piattaforma Android fornisce un'app dell'operatore predefinita con un comportamento predefinito per la mitigazione del traffico basato sul segnale di rilevamento del captive-portal. Fornisce inoltre ai vettori e agli OEM l'opportunità di personalizzare il comportamento a basso costo e grande flessibilità.

Esempi e fonte

L'app dell'operatore predefinita si trova in platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementazione

L'app dell'operatore predefinita è configurata per fornire immediatamente un'esperienza migliore agli operatori non configurati. Gli operatori possono utilizzare questo comportamento predefinito. Possono anche sovrascrivere il comportamento predefinito aggiungendo mappature segnale-azione al file XML di configurazione dell'operatore. Possono decidere di non utilizzare l'app predefinita e di utilizzare invece i privilegi UICC con la propria app dell'operatore autonoma.

Introduzione all'implementazione

Segnali

Il framework Android supporta la configurazione di azioni sui seguenti segnali parametrizzati:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Questi segnali si trovano in frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Azioni supportate

L'app dell'operatore predefinita definisce una serie di azioni supportate che possono essere mappate sui segnali supportati. Questi sono definiti in CarrierActionUtils.java :

    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;

Nota: se un operatore implementa la propria app autonoma, può implementare il supporto per segnali diversi da quelli menzionati in questa sezione. Possono anche definire e configurare le proprie azioni.

Mappature segnale-azione predefinite

Configura le azioni predefinite seguendo questo processo:

  1. Definire una chiave per i segnali supportati.

    Le mappature predefinite di segnale e azione sono definite in CarrierConfigManager.java . Ciascuno dei segnali supportati ha una chiave:

    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. Associa azioni predefinite ai tasti di segnalazione.

    Gli ID di azione predefiniti sono associati alle chiavi segnale:

    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
             });
    

    Il framework della telefonia associa queste azioni ai segnali corrispondenti.

Sostituire le azioni predefinite

È possibile definire azioni personalizzate per i segnali supportati nel file XML di configurazione dell'operatore associando gli ID azione alle chiavi del segnale (definite in CarrierConfigManager.java ). Ad esempio, la seguente mappatura disabilita gli APN misurati e mostra una notifica del portale sul reindirizzamento:

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

Il framework di telefonia carica queste configurazioni e sovrascrive le azioni predefinite.

Validazione

Non sono disponibili test CTS, CTS Verifier o GTS per questa funzionalità.

Utilizzare questi test di convalida manuali per convalidare la funzionalità:

  1. Convalida la notifica del segnale di squilibrio del dispositivo telco.
  2. Verifica la limitazione del reindirizzamento del traffico durante lo stato di squilibrio e il Wi-Fi disattivato.
  3. Verificare che il traffico di rete sia disattivato e che l'interfaccia utente di notifica venga visualizzata durante lo stato di squilibrio.
  4. Convalida la funzione chiamata vocale/VoLTE durante lo stato di squilibrio.
  5. Verifica che le videochiamate siano bloccate in stato di squilibrio.
  6. Con il Wi-Fi attivo, verifica che l'utente possa continuare la navigazione sul Web e che il traffico di navigazione non attivi il traffico di rete mentre si trova in uno stato di squilibrio.
  7. Convalida le funzioni Wi-Fi, WFC e Bluetooth durante lo stato di squilibrio.
  8. Disattiva il Wi-Fi. Verificare l'interfaccia utente della notifica di squilibrio e che il traffico di navigazione ordinario non venga reindirizzato al sito Web di registrazione delle società di telecomunicazioni. Verificare che facendo clic sul collegamento nell'interfaccia utente di notifica il browser venga indirizzato al sito Web di registrazione delle società di telecomunicazioni.
  9. Verifica che l'attivazione della modalità aereo non reimposti lo stato di limitazione del traffico.
  10. Verificare che lo scambio di una SIM in servizio ripristini lo stato del traffico di rete.
  11. Verificare che il reinserimento della SIM sbilanciata riavvii il reindirizzamento del traffico e ottenga nuovamente la limitazione del traffico di rete.
  12. Verificare che il riavvio del telefono riattivi il reindirizzamento e ripristini la limitazione del traffico e l'interfaccia utente di notifica.
  13. Tocca la notifica "captiveportal". Verificare che sia stabilita una connessione di rete limitata per consentire all'utente di aggiungere crediti.
  14. Verificare che il riempimento o la riattivazione del saldo della SIM provochi il ripristino del traffico della rete cellulare e la scomparsa del collegamento Telco e della notifica di assenza di saldo.
  15. Test di integrità dopo il ripristino del servizio dati.

L'app predefinita fornisce alcuni esempi di unit test e uno script per eseguirli (vedere tests/runtest.sh ). Quando implementi una versione o un comportamento personalizzato, devi rispecchiare tali personalizzazioni in unit test dedicati.