接続ユーザー インターフェース

Android 12 以降では、デバイス メーカーは必要に応じて、ユーザーによるネットワーク接続状況の把握、インターネット プロバイダの切り替え、ネットワーク接続問題のトラブルシューティングに役立つ簡素化された接続エクスペリエンスを導入できます。この点に関する Android 11 以前からのユーザー エクスペリエンスの変更は、クイック設定と設定におけるユーザー インターフェース、アイコン、API の変更に反映されています。こうした変更のすべては AOSP で利用可能であり、デバイス メーカーはそれらをそのまま使用することもカスタマイズすることもできます。

簡素化された接続エクスペリエンスの概要

このセクションでは、Android 12 以降の AOSP における簡素化された接続エクスペリエンスの主なユーザー インターフェースの変更について説明します。

[クイック設定] の [インターネット] タイル

[クイック設定] メニューには [インターネット] タイルがあり、ユーザーはそこから [インターネット] パネルを開いて Wi-Fi 接続とモバイル接続を切り替えることができます。[インターネット] タイルは、Android 11 以前で使用されていた [Wi-Fi] タイルと [モバイルデータ] タイルを 1 つにしたものです。

[クイック設定] メニューの [インターネット] タイル

図 1. [クイック設定] の [インターネット] タイル

[設定] の [通話と SMS] セクション

設定アプリの [ネットワークとインターネット] には [通話と SMS] セクションがあり、可用性のステータスと Wi-Fi 通話オプションが表示されます。

[設定] の [通話と SMS] セクション

図 2. [設定] の [通話と SMS] セクション

[設定] のリセットボタン

設定アプリの [ネットワークとインターネット] > [インターネット] にはリセットボタンがあり、ユーザーはこのボタンを使用してデバイス上の電話および 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: システム UI に「通信強度」アイコンが表示されるかどうかを示すブール値。

フレームワーク API

近くの Wi-Fi ネットワークを一時的に無効にするには、以下の API を使用します。

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): ユーザーは Wi-Fi を無効にせずに携帯通信会社ネットワークを選択できます。現在表示されているすべての Wi-Fi ネットワークを、最低 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): Wi-Fi サブシステムを再起動します。
  • TelephonyManager#rebootRadio(): 無線モデムをリセットします。

複数の携帯通信会社との連携

簡素化された接続エクスペリエンスを特定の携帯通信会社のみで導入する場合は、マルチ SIM シナリオに注意してください。これは、ユーザーが 2 つの SIM を使用し、一方は UI の変更を選択した携帯通信会社パートナーからのもので、もう一方は UI の変更を選択していないパートナーからのものである場合です。このシナリオでは、どちらの UI をユーザーに表示するかを決定し、デバイス上での動作を入念にテストしてください。