In Android 12 o versioni successive, i produttori di dispositivi possono facoltativamente adottare un'esperienza di connettività semplificata che aiuta gli utenti a comprendere meglio le proprie connessioni di rete, a passare da un provider Internet all'altro e a risolvere i problemi di connettività di rete. Questi cambiamenti nell'esperienza utente rispetto ad Android 11 o versioni precedenti si riflettono nell'interfaccia utente, nell'iconografia e nelle modifiche API per Impostazioni rapide e Impostazioni. Tutte queste modifiche sono disponibili in AOSP affinché i produttori di dispositivi possano abilitarle così come sono o personalizzarle.
Panoramica dell'esperienza di connettività semplificata
Questa sezione descrive le principali modifiche all'interfaccia utente dell'esperienza di connettività semplificata in AOSP a partire da Android 12.
Riquadro Internet nelle Impostazioni rapide
Il menu Impostazioni rapide include un riquadro Internet che apre un pannello Internet in cui gli utenti possono passare dalla connessione Wi-Fi a quella cellulare. Il riquadro Internet combina i riquadri Wi-Fi e Dati mobili utilizzati in Android 11 o versioni precedenti.
Figura 1. Riquadro Internet in Impostazioni rapide
Sezione Chiamate e SMS in Impostazioni
L'app Impostazioni include una sezione Chiamate e SMS in Rete e Internet che visualizza lo stato di disponibilità e le opzioni di chiamata Wi-Fi.
Figura 2. Sezione Chiamate e SMS in Impostazioni
Pulsante Ripristina in Impostazioni
Nell'app Impostazioni, Rete e Internet > Internet include un pulsante di ripristino che consente agli utenti di ripristinare la telefonia e i modem Wi-Fi sul dispositivo, il che può essere utile durante la risoluzione dei problemi di connettività di rete.
Figura 3. Pulsante Reimposta per la risoluzione dei problemi di connettività
Implementazione
Per abilitare l'esperienza di connettività semplificata sul tuo dispositivo, utilizza il seguente flag delle impostazioni globali:
- Nome:
persist.sys.fflag.override.settings_provider_model
- Tipo: booleano
- Valore: impostare su
true
per abilitare il comportamento di semplificazione della connettività,false
per disabilitarlo e utilizzare il comportamento legacy. A partire da Android 12, il codepath perfalse
non viene più mantenuto attivamente.
Inoltre, puoi configurare le seguenti modalità dell'interfaccia utente per i singoli operatori utilizzando la configurazione dell'operatore . Le chiavi di configurazione sono:
-
CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL
: un valore booleano che indica se l'operatore configura le reti Wi-Fi che fanno parte della sua rete principale e vengono visualizzate come parte della rete cellulare. Funziona in tandem con il metodoWifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged)
. -
CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL
: un valore booleano che indica se la connettività della rete dati (IP) viene utilizzata come condizione supplementare per impedire la visualizzazione dell'icona di nessuna chiamata . -
CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL
: un valore booleano che indica se l'icona dell'intensità della chiamata viene visualizzata nell'interfaccia utente del sistema.
API del quadro
Per disattivare temporaneamente le reti Wi-Fi nelle vicinanze, utilizza le seguenti API:
-
WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId)
: consente all'utente di selezionare la rete di un operatore senza disabilitare il Wi-Fi. Disabilita tutte le reti Wi-Fi attualmente visibili per una durata minima di 30 minuti (controllata tramite l'overlayconfig_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes
) e una durata massima di 6 ore (controllata tramite l'overlayconfig_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes
). Le reti Wi-Fi vengono riattivate ogni volta che il Wi-Fi viene attivato, il dispositivo viene riavviato, se l'utente seleziona una rete Wi-Fi (nel qual caso l'APIstopRestrictingAutoJoinToSubscriptionId()
viene eseguita da Impostazioni) o se la rete non è visibile per 60 minuti. -
WifiManager#stopRestrictingAutoJoinToSubscriptionId()
: ripristina il normale funzionamento.
Per supportare il pulsante di ripristino e l'interfaccia utente per la risoluzione dei problemi, implementata nella classe com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager
, utilizza le seguenti API:
-
WifiManager#restartWifiSubsystem(String reason)
: riavvia il sottosistema Wi-Fi. -
TelephonyManager#rebootRadio()
: ripristina il modem radio.
Lavorare con più operatori
Se adotti l'esperienza di connettività semplificata per alcuni operatori ma non per altri, tieni presente lo scenario multi-SIM, in cui un utente utilizza due SIM, una di un operatore partner che ha optato per le modifiche dell'interfaccia utente mentre l'altra no. In questo scenario, assicurati di decidere quale interfaccia utente visualizzare gli utenti e di testare attentamente il comportamento sui tuoi dispositivi.