Interfejs użytkownika łączności

W systemie Android 12 lub nowszym producenci urządzeń mogą opcjonalnie zastosować uproszczoną łączność, która pomaga użytkownikom lepiej zrozumieć połączenia sieciowe, przełączać się między dostawcami Internetu i rozwiązywać problemy z łącznością sieciową. Te zmiany w doświadczeniu użytkownika w porównaniu z Androidem 11 lub starszym znajdują odzwierciedlenie w interfejsie użytkownika, ikonografii i zmianach API w Szybkich ustawieniach i Ustawieniach. Wszystkie te zmiany są dostępne w AOSP, aby producenci urządzeń mogli je włączyć lub dostosować.

Uproszczony przegląd możliwości połączeń

W tej sekcji opisano główne zmiany w interfejsie użytkownika dotyczące uproszczonej łączności w AOSP, począwszy od wersji Androida 12.

Kafelek internetowy w Szybkich ustawieniach

Menu Szybkie ustawienia zawiera kafelek Internet, który otwiera panel Internetu, w którym użytkownicy mogą przełączać się między połączeniami Wi-Fi i komórkowymi. Kafelek Internet łączy kafelki Wi-Fi i danych mobilnych używane w systemie Android 11 lub starszym.

Kafelek Internet w menu Szybkie ustawienia

Rysunek 1. Kafelek Internet w Szybkich ustawieniach

Sekcja Połączenia i SMS-y w Ustawieniach

Aplikacja Ustawienia zawiera sekcję Połączenia i SMS-y w obszarze Sieć i Internet , która wyświetla stan dostępności i opcje połączeń Wi-Fi.

Sekcja Połączenia i SMS-y w Ustawieniach

Rysunek 2. Sekcja Połączenia i SMS-y w Ustawieniach

Przycisk resetowania w Ustawieniach

W aplikacji Ustawienia opcja Sieć i Internet > Internet zawiera przycisk resetowania , który umożliwia użytkownikom resetowanie modemów telefonicznych i Wi-Fi na urządzeniu, co może być przydatne podczas rozwiązywania problemów z łącznością sieciową.

Przycisk Resetuj w Ustawieniach, aby rozwiązać problemy z łącznością

Rysunek 3. Przycisk resetowania umożliwiający rozwiązywanie problemów z łącznością

Realizacja

Aby włączyć uproszczoną łączność na swoim urządzeniu, użyj następującej flagi ustawień globalnych:

  • Nazwa: persist.sys.fflag.override.settings_provider_model
  • Typ: logiczny
  • Wartość: ustaw na true , aby włączyć zachowanie upraszczające łączność, false , aby je wyłączyć i użyć starszego zachowania. Począwszy od Androida 12, ścieżka kodowa dla false nie jest już aktywnie obsługiwana.

Dodatkowo możesz skonfigurować następujące tryby interfejsu użytkownika dla poszczególnych operatorów korzystając z konfiguracji operatora . Klucze konfiguracyjne to:

  • CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL : Wartość logiczna wskazująca, czy operator konfiguruje sieci Wi-Fi, które są częścią jego sieci rdzeniowej i są wyświetlane jako część sieci komórkowej. Działa to w połączeniu z metodą WifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged) .
  • CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL : Wartość logiczna wskazująca, czy łączność z siecią danych (IP) jest używana jako dodatkowy warunek do wyświetlania ikony braku połączenia .
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL : Wartość logiczna wskazująca, czy ikona siły połączenia jest wyświetlana w interfejsie użytkownika systemu.

Ramowe interfejsy API

Aby tymczasowo wyłączyć pobliskie sieci Wi-Fi, użyj następujących interfejsów API:

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId) : umożliwia użytkownikowi wybór sieci operatora bez wyłączania Wi-Fi. Wyłącza wszystkie aktualnie widoczne sieci Wi-Fi na minimalny czas 30 minut (kontrolowany przez nakładkę config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes ) i maksymalny czas 6 godzin (kontrolowany przez nakładkę config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes ). Sieci Wi-Fi są ponownie włączane po każdym przełączeniu Wi-Fi, ponownym uruchomieniu urządzenia, jeśli użytkownik wybierze sieć Wi-Fi (w takim przypadku funkcja API stopRestrictingAutoJoinToSubscriptionId() jest wykonywana w Ustawieniach) lub jeśli sieć nie jest widoczna przez 60 minut.
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId() : Przywraca normalne działanie.

Aby obsługiwać przycisk resetowania i interfejs użytkownika do rozwiązywania problemów, który jest zaimplementowany w klasie com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager , użyj następujących interfejsów API:

  • WifiManager#restartWifiSubsystem(String reason) : Ponownie uruchamia podsystem Wi-Fi.
  • TelephonyManager#rebootRadio() : Resetuje modem radiowy.

Współpraca z wieloma przewoźnikami

Jeśli zastosujesz uproszczoną łączność dla niektórych operatorów, ale nie dla innych, pamiętaj o scenariuszu z wieloma kartami SIM, w którym użytkownik korzysta z dwóch kart SIM, jednej od partnera operatora, który zdecydował się na zmiany w interfejsie użytkownika, a drugiej nie. W tym scenariuszu zdecyduj, który interfejs użytkownika zobaczą użytkownicy i dokładnie przetestuj zachowanie na swoich urządzeniach.