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.
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.
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ą.
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 dlafalse
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 APIstopRestrictingAutoJoinToSubscriptionId()
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.