连接界面

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

简化的连接体验概览

本部分将介绍从 Android 12 开始,AOSP 简化的连接体验方面的主要界面变化。

快捷设置中的互联网图块

快捷设置菜单包含一个互联网图块,用户可通过该图块打开互联网面板,从而在 Wi-Fi 和移动网络连接之间切换。互联网图块合并了 Android 11 或更低版本中使用的 Wi-Fi 和移动流量图块。

快捷设置菜单中的互联网图块

图 1. 快捷设置中的互联网图块

设置中的通话和短信部分

设置应用包括网络和互联网下的通话和短信部分,用于显示可用性状态和 WLAN 通话选项。

设置中的通话和短信部分

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

设置中的重置按钮

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

设置中的重置按钮,用于排查连接问题

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

实现

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

  • 名称:persist.sys.fflag.override.settings_provider_model
  • 类型:布尔值
  • 值:设置为 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:布尔值,指示是否在系统界面中显示通话强度图标。

框架 API

如需暂时停用附近的 WLAN 网络,请使用以下 API:

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId):可使用户在不停用 WLAN 的情况下选择运营商网络。停用所有可见的 WLAN 网络并最少持续 30 分钟(通过 config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes 叠加层控制),最长持续 6 小时(通过 config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes 叠加层控制)。 每当切换 Wi-Fi 时,Wi-Fi 网络都会重新启用;如果用户选择了 Wi-Fi 网络(在这种情况下,stopRestrictingAutoJoinToSubscriptionId() API 由设置执行),或者如果网络持续 60 分钟不可见,那么设备将重新启动。
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId():恢复正常运行。

如需支持在 com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager 类中实现的重置按钮和问题排查界面,请使用以下 API:

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

与多家运营商合作

如果您为某些运营商(而非其他运营商)采用简化的连接体验,请注意多 SIM 卡场景,即用户使用了两张 SIM 卡,其中一张卡来自选择更改界面的运营商合作伙伴,而另一个则不然。在这种情况下,请务必确定用户会看到哪个界面,并全面测试设备上的行为。