Google 致力于为黑人社区推动种族平等。查看具体举措
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Personalizzazione del comportamento del dispositivo per gli utenti sbilanciati

I dispositivi Android senza bilanciamento dei dati consentono il passaggio del traffico di rete, richiedendo ai gestori 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 si è esaurito.

La piattaforma Android fornisce un'app operatore predefinita con un comportamento predefinito per la mitigazione del traffico in base al segnale di rilevamento del captive portal. Fornisce inoltre ai vettori e agli OEM l'opportunità di personalizzare il comportamento con costi contenuti e grande flessibilità.

Esempi e fonte

L'app del gestore di platform/frameworks/base/packages/CarrierDefaultApp/ . predefinita si trova in platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementazione

L'app del gestore di telefonia predefinita è configurata per fornire una migliore esperienza per i corrieri non configurati immediatamente. I vettori possono utilizzare questo comportamento predefinito. Possono anche sovrascrivere il comportamento predefinito aggiungendo mappature segnale-azione al file XML di configurazione del vettore. Possono decidere di non utilizzare l'app predefinita e invece di utilizzare i privilegi UICC con la propria app operatore autonoma.

Introduzione all'implementazione

Segnali

Il framework Android supporta la configurazione delle azioni per i 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 del gestore predefinito definisce un insieme 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. Definisci una chiave per i segnali supportati.

    Le mappature da segnale ad azione predefinite 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 per segnalare le chiavi.

    Gli ID azione predefiniti sono associati alle chiavi di 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 di telefonia mappa queste azioni sui segnali corrispondenti.

Sovrascrittura delle azioni predefinite

È possibile definire azioni personalizzate per i segnali supportati nel file XML di configurazione del vettore associando gli ID delle azioni alle chiavi dei segnali (definite in CarrierConfigManager.java ). Ad esempio, la seguente mappatura disabilita gli APN misurati e mostra una notifica del portale al 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 ci sono test CTS, CTS Verifier o GTS per questa funzione.

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

  1. Convalida la notifica del segnale di squilibrio del dispositivo di telecomunicazioni.
  2. Verifica la limitazione del reindirizzamento del traffico durante lo stato di sbilanciamento 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 sbilanciamento.
  4. Convalida la chiamata vocale / funzione VoLTE durante lo stato di sbilanciamento.
  5. Verifica che la videochiamata sia bloccata in stato di sbilanciamento.
  6. Con il Wi-Fi attivo, verifica che l'utente possa continuare a navigare sul Web e che il traffico di navigazione non attivi il traffico di rete mentre si trova in uno stato di sbilanciamento.
  7. Convalida le funzioni Wi-Fi, WFC e Bluetooth durante lo stato di sbilanciamento.
  8. Disattiva il Wi-Fi. Verificare l'interfaccia utente di notifica di sbilanciamento e che il normale traffico di navigazione non venga reindirizzato al sito Web di registrazione delle società di telecomunicazioni. Verificare facendo clic sul collegamento nell'interfaccia utente di notifica per portare il browser al sito Web di registrazione delle società di telecomunicazioni.
  9. Verificare che l'attivazione della modalità aereo non ripristini 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 la ricarica 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 mancato saldo.
  15. Test di sanità mentale 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 si implementa una versione o un comportamento personalizzato, è necessario rispecchiare tali personalizzazioni in unit test dedicati.