No Android 12 ou mais recente, os fabricantes de dispositivos podem adotar uma experiência de conectividade simplificada que ajuda os usuários a entender melhor as conexões de rede, alternar entre provedores de Internet e resolver problemas de conectividade da rede. Essas mudanças na experiência do usuário em comparação com o Android 11 ou versões anteriores são refletidas na interface do usuário, na iconografia e nas mudanças de API para Configurações Rápidas e Configurações. Todas essas mudanças estão disponíveis no AOSP para que os fabricantes de dispositivos ativem no estado em que se encontra ou personalizem.
Visão geral da experiência de conectividade simplificada
Esta seção descreve as principais mudanças na interface da experiência de conectividade simplificada no AOSP a partir do Android 12.
Bloco da Internet nas Configurações Rápidas
O menu Configurações Rápidas inclui um bloco da Internet que abre um painel em que os usuários podem alternar entre conexões Wi-Fi e de rede celular. O bloco da Internet combina os blocos de Wi-Fi e Dados móveis usados no Android 11 ou versões anteriores.
Figura 1. Bloco da Internet nas Configurações Rápidas
Seção "Chamadas e SMS" nas Configurações
O app Configurações inclui uma seção Chamadas e SMS em Rede e Internet que mostra o status de disponibilidade e as opções de ligação pelo Wi-Fi.
Figura 2. Seção "Chamadas e SMS" nas Configurações
Botão "Redefinir" nas Configurações
No app Configurações, Rede e Internet > Internet inclui um botão "Redefinir" que permite aos usuários redefinir os modems de telefonia e Wi-Fi no dispositivo, o que pode ser útil ao solucionar problemas de conectividade de rede.
Figura 3. Botão "Redefinir" para solucionar problemas de conectividade
Implementação
Para ativar a experiência de conectividade simplificada no dispositivo, use a seguinte flag de configurações globais:
- Nome:
persist.sys.fflag.override.settings_provider_model - Tipo:booleano
- Valor:defina como
truepara ativar o comportamento de simplificação de conectividade oufalsepara desativá-lo e usar o comportamento legado. A partir do Android 12, o codepath parafalsenão é mais mantido ativamente.
Além disso, é possível configurar os seguintes modos da interface para operadoras individuais usando a configuração da operadora. As chaves de configuração são:
CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: um booleano que indica se a operadora configura redes Wi-Fi que fazem parte da rede principal e são mostradas como parte da rede móvel. Isso funciona em conjunto com o métodoWifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged).CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: um booleano que indica se a conectividade da rede de dados (IP) é usada como uma condição complementar para limitar a exibição do ícone sem chamadas.CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: um booleano que indica se o ícone intensidade da chamada é mostrado na interface do sistema.
APIs do framework
Para desativar temporariamente as redes Wi-Fi próximas, use as seguintes APIs:
WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): permite que o usuário selecione uma rede de operadora sem desativar o Wi-Fi. Desativa todas as redes Wi-Fi visíveis por um período mínimo de 30 minutos (controlado pela sobreposiçãoconfig_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) e um período máximo de 6 horas (controlado pela sobreposiçãoconfig_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). As redes Wi-Fi são reativadas sempre que o Wi-Fi é ativado, o dispositivo é reinicializado, se o usuário seleciona uma rede Wi-Fi (nesse caso, a APIstopRestrictingAutoJoinToSubscriptionId()é executada pelas Configurações) ou se a rede não estiver visível por 60 minutos.WifiManager#stopRestrictingAutoJoinToSubscriptionId(): restaura a operação normal.
Para oferecer suporte ao botão "Redefinir" e à interface de solução de problemas, que é implementada na classe com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, use as seguintes APIs:
WifiManager#restartWifiSubsystem(String reason): reinicia o subsistema Wi-Fi.TelephonyManager#rebootRadio(): redefine o modem de rádio.
Trabalhar com várias operadoras
Se você adotar a experiência de conectividade simplificada para algumas operadoras, mas não para outras, esteja ciente do cenário de vários SIMs, em que um usuário usa dois SIMs, um de uma operadora parceira que optou pelas mudanças na interface e outro que não. Nesse cenário, decida qual interface os usuários vão ver e teste o comportamento nos dispositivos.