连接用户界面

在 Android 12 或更高版本中,设备制造商可以选择采用简化的连接体验,帮助用户更好地了解其网络连接、在互联网提供商之间切换以及排查网络连接问题。与 Android 11 或更低版本相比,这些用户体验的变化反映在用户界面、图标以及快速设置和设置的 API 更改中。所有这些更改都可以在 AOSP 中找到,供设备制造商按原样启用或自定义。

简化的连接体验概述

本节介绍从 Android 12 开始,AOSP 中简化的连接体验的主要用户界面更改。

快速设置中的互联网图块

快速设置菜单包含一个“互联网”磁贴,用户可以通过该磁贴打开“互联网”面板,从而在 Wi-Fi 和蜂窝网络连接之间切换。“互联网”磁贴整合了 Android 11 或更低版本中使用的“Wi-Fi”和“移动数据”磁贴。

Internet tile in the Quick Settings menu

图 1. 快速设置中的“互联网”磁贴

设置中的“通话和短信”部分

“设置”应用在网络和互联网下包含一个通话和短信部分,其中显示了可用性状态和 Wi-Fi 通话选项。

Calls & SMS section in Settings

图 2. 设置中的“通话和短信”部分

设置中的“重置”按钮

在“设置”应用中,网络和互联网 > 互联网包含一个重置按钮,用户可以使用该按钮重置设备上的电话和 Wi-Fi 调制解调器,这在排查网络连接问题时可能很有用。

Reset button in Settings to troubleshoot connectivity issues

图 3. 用于排查连接问题的“重置”按钮

实现

要在您的设备上启用简化的连接体验,请使用以下全局设置标志

  • 名称: persist.sys.fflag.override.settings_provider_model
  • 类型: Boolean
  • 值: 设置为 true 以启用连接简化行为,设置为 false 以禁用该行为并使用旧版行为。从 Android 12 开始,不再积极维护 false 的代码路径。

此外,您可以使用运营商配置为各个运营商配置用户界面的以下模式。配置键为

  • CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: 一个布尔值,指示运营商是否配置了作为其核心网络一部分且显示为移动网络一部分的 Wi-Fi 网络。这与 WifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged) 方法协同工作。
  • CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: 一个布尔值,指示是否使用数据网络 (IP) 连接作为补充条件来控制无通话图标的显示。
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: 一个布尔值,指示是否在系统 UI 中显示通话强度图标。

框架 API

要临时禁用附近的 Wi-Fi 网络,请使用以下 API

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): 允许用户选择运营商网络,而无需禁用 Wi-Fi。禁用所有可见的 Wi-Fi 网络,最短持续时间为 30 分钟(通过 config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes 叠加层控制),最长持续时间为 6 小时(通过 config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes 叠加层控制)。每当 Wi-Fi 切换、设备重启、用户选择 Wi-Fi 网络(在这种情况下,“设置”会执行 stopRestrictingAutoJoinToSubscriptionId() API)或者网络在 60 分钟内不可见时,Wi-Fi 网络都会重新启用。
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId(): 恢复正常运行。

要支持在 com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager 类中实现的重置按钮和故障排除用户界面,请使用以下 API

  • WifiManager#restartWifiSubsystem(String reason): 重新启动 Wi-Fi 子系统。
  • TelephonyManager#rebootRadio(): 重置无线调制解调器。

与多个运营商合作

如果您为某些运营商采用简化的连接体验,但不对其他运营商采用,请注意多 SIM 卡场景,即用户使用两张 SIM 卡,一张来自已选择 UI 更改的运营商合作伙伴,而另一张则没有。在这种情况下,请确保决定用户看到的 UI,并彻底测试设备上的行为。