In Android 12 or higher, device manufacturers can optionally adopt a simplified connectivity experience that helps users better understand their network connections, switch between internet providers, and troubleshoot network connectivity issues. These changes in user experience as compared to Android 11 or lower, are reflected in user interface, iconography, and API changes for Quick Settings and Settings. All of these changes are available in AOSP for device manufacturers to enable as is or to customize.
Simplified connectivity experience overview
This section describes the major user interface changes of the simplified connectivity experience in AOSP starting in Android 12.
Internet tile in Quick Settings
The Quick Settings menu includes an Internet tile that opens up an Internet panel where users can switch between Wi-Fi and cellular connections. The Internet tile combines the Wi-Fi and Mobile Data tiles used in Android 11 or lower.
Figure 1. Internet tile in Quick Settings
Calls & SMS section in Settings
The Settings app includes a Calls & SMS section under Network & Internet that displays availability status and Wi-Fi calling options.
Figure 2. Calls & SMS section in Settings
Reset button in Settings
In the Settings app, Network & Internet > Internet includes a reset button that lets users reset the telephony and Wi-Fi modems on the device, which may be useful when troubleshooting network connectivity issues.
Figure 3. Reset button for troubleshooting connectivity issues
To enable the simplified connectivity experience on your device, use the following global settings flag:
- Type: Boolean
- Value: Set to
trueto enable the connectivity simplification behavior,
falseto disable it and use the legacy behavior. Starting in Android 12, the codepath for
falseis no longer actively maintained.
Additionally, you can configure the following modes of the user interface for individual carriers using carrier configuration. The configuration keys are:
CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: A boolean indicating whether the carrier configures Wi-Fi networks that are part of its core network and are displayed as part of the cellular network. This works in tandem with the
CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: A boolean indicating whether data network (IP) connectivity is used as a supplemental condition to gate display of the no calling icon.
CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: A boolean indicating whether the call strength icon is displayed in the system UI.
To temporarily disable nearby Wi-Fi networks, use the following APIs:
WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): Allows the user to select a carrier network without disabling Wi-Fi. Disables all currently visible Wi-Fi networks for a minimum duration of 30 minutes (controlled through the
config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutesoverlay), and a maximum duration of 6 hours (controlled through the
config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutesoverlay). Wi-Fi networks are reenabled whenever Wi-Fi is toggled, the device is rebooted, if the user selects a Wi-Fi network (in which case the
stopRestrictingAutoJoinToSubscriptionId()API is executed by Settings), or if the network isn't visible for 60 minutes.
WifiManager#stopRestrictingAutoJoinToSubscriptionId(): Restores normal operation.
To support the reset button and troubleshooting user interface, which is
implemented in the
class, use the following APIs:
WifiManager#restartWifiSubsystem(String reason): Restarts the Wi-Fi subsystem.
TelephonyManager#rebootRadio(): Resets radio modem.
Working with multiple carriers
If you adopt the simplified connectivity experience for certain carriers but not others, be aware of the multi-SIM scenario, where a user uses two SIMs, one from a carrier partner that has opted for the UI changes while the other hasn't. In this scenario, make sure to decide which UI the users see and to thoroughly test the behavior on your devices.