Пользовательский интерфейс подключения

В Android 12 и более поздних версий производители устройств могут реализовать упрощенный интерфейс подключения, который помогает пользователям лучше понимать свои сетевые подключения, переключаться между интернет-провайдерами и устранять неполадки с подключением к сети. Эти изменения в пользовательском интерфейсе по сравнению с Android 11 и более ранними версиями отражены в интерфейсе, значках и API для быстрых настроек и настроек. Все эти изменения доступны в AOSP, и производители устройств могут использовать их как есть или настраивать.

Обзор упрощенного подключения

В этом разделе описаны основные изменения интерфейса, связанные с упрощенным подключением в AOSP, начиная с Android 12.

Параметр "Интернет" в быстрых настройках

В меню быстрых настроек есть параметр "Интернет", который открывает панель "Интернет", где пользователи могут переключаться между Wi-Fi и передачей данных по мобильной сети. Плитка "Интернет" объединяет плитки "Wi-Fi" и "Мобильный интернет", которые использовались в Android 11 и более ранних версиях.

карточка "Интернет" в меню быстрых настроек;

Рисунок 1. Карточка "Интернет" в быстрых настройках

Раздел "Звонки и SMS" в настройках

В приложении "Настройки " в разделе Сеть и интернет есть раздел Звонки и SMS, в котором можно посмотреть статус доступности и настройки звонков по Wi-Fi.

Раздел "Звонки и SMS" в настройках

Рисунок 2. Раздел "Звонки и SMS" в настройках

Кнопка сброса в настройках

В приложении "Настройки" в разделе Сеть и интернет > Интернет есть кнопка сброса, с помощью которой пользователи могут сбросить настройки модемов Wi-Fi и телефонии на устройстве. Это может быть полезно при устранении неполадок с подключением к сети.

Кнопка сброса в настройках для устранения неполадок с подключением

Рисунок 3. Кнопка сброса для устранения неполадок с подключением

Реализация

Чтобы включить упрощенное подключение на устройстве, используйте следующий глобальный флаг:

  • Name: 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 – логическое значение, указывающее, отображается ли значок уровня сигнала в интерфейсе системы.

Framework APIs

Чтобы временно отключить сети Wi-Fi поблизости, используйте следующие API:

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId) – позволяет пользователю выбрать сеть оператора связи, не отключая Wi-Fi. Отключает все видимые сети Wi-Fi на период от 30 минут (управляется с помощью наложения config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) до 6 часов (управляется с помощью наложения config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). Сети Wi-Fi снова включаются, когда пользователь включает Wi-Fi, перезагружает устройство, выбирает сеть Wi-Fi (в этом случае Настройки выполняют API stopRestrictingAutoJoinToSubscriptionId()) или если сеть не видна в течение 60 минут.
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId(): восстанавливает нормальную работу.

Чтобы поддерживать кнопку сброса и пользовательский интерфейс устранения неполадок, реализованный в классе com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, используйте следующие API:

  • WifiManager#restartWifiSubsystem(String reason): перезапускает подсистему Wi-Fi.
  • TelephonyManager#rebootRadio() – сброс настроек радиомодема.

Работа с несколькими операторами связи

Если вы используете упрощенное подключение для некоторых операторов, но не для всех, учитывайте, что пользователь может использовать две SIM-карты, одна из которых принадлежит оператору, который включил изменения интерфейса, а другая – нет. В этом случае вам нужно решить, какой интерфейс будет показываться пользователям, и тщательно протестировать поведение на своих устройствах.