In Android 12 o versioni successive, i produttori di dispositivi possono adottare facoltativamente un'esperienza di connettività semplificata che aiuta gli utenti a comprendere meglio le loro connessioni di rete, passare da un provider di servizi internet all'altro e risolvere i problemi di connettività di rete. Queste modifiche all'esperienza utente rispetto ad Android 11 o versioni precedenti si riflettono nell'interfaccia utente, nell'iconografia e nelle modifiche alle API per Impostazioni rapide e Impostazioni. Tutte queste modifiche sono disponibili in AOSP per consentire ai produttori di dispositivi di attivarle così come sono o di 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 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 nelle Impostazioni rapide
Sezione Chiamate e SMS nelle Impostazioni
L'app Impostazioni include una sezione Chiamate e SMS nella sezione Rete e internet che mostra lo stato di disponibilità e le opzioni per le chiamate Wi-Fi.
Figura 2. Sezione Chiamate e SMS nelle Impostazioni
Pulsante Reimposta in Impostazioni
Nell'app Impostazioni, Rete e internet > Internet include un pulsante di ripristino che consente agli utenti di ripristinare i modem Wi-Fi e di telefonia sul dispositivo, il che può essere utile per risolvere i problemi di connettività di rete.
Figura 3. Pulsante di ripristino per la risoluzione dei problemi di connettività
Implementazione
Per attivare l'esperienza di connettività semplificata sul dispositivo, utilizza il seguente flag di impostazioni globali:
- Nome:
persist.sys.fflag.override.settings_provider_model
- Tipo: booleano
- Valore: imposta
true
per attivare il comportamento di semplificazione della connettività,false
per disattivarlo e utilizzare il comportamento precedente. A partire da Android 12, il percorso del codice perfalse
non è più gestito attivamente.
Inoltre, puoi configurare le seguenti modalità dell'interfaccia utente per i singoli corrieri utilizzando la configurazione del corriere. 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 mobile. 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 controllare la visualizzazione dell'icona Nessuna chiamata.CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL
: Un valore booleano che indica se l'icona Intensità chiamata viene visualizzata nell'interfaccia utente del sistema.
API Framework
Per disattivare temporaneamente le reti Wi-Fi nelle vicinanze, utilizza le seguenti API:
WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId)
: consente all'utente di selezionare una rete operatore senza disattivare il Wi-Fi. Disattiva tutte le reti Wi-Fi visibili per una durata minima di 30 minuti (controllata tramite la sovrapposizioneconfig_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes
) e una durata massima di 6 ore (controllata tramite la sovrapposizioneconfig_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes
). Le reti Wi-Fi vengono riattivate ogni volta che il Wi-Fi viene attivato/disattivato, 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, implementati 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.
Collaborare con più corrieri
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 scelto le modifiche all'interfaccia utente e l'altra no. In questo scenario, assicurati di decidere quale UI vedono gli utenti e di testare a fondo il comportamento sui tuoi dispositivi.