Interfejs łączności

W Androidzie 12 lub nowszym producenci urządzeń mogą opcjonalnie wdrożyć uproszczone połączenie, które ułatwia użytkownikom lepsze zrozumienie połączeń sieciowych, przełączanie się między dostawcami internetu i rozwiązywanie problemów z połączeniemi sieciowymi. Te zmiany w środowisku użytkowników w porównaniu z Androidem 11 lub niższym dotyczą interfejsu użytkownika, ikonografii i interfejsu API w Ustawieniach Szybkich i Ustawieniach. Wszystkie te zmiany są dostępne w AOSP, aby umożliwić producentom urządzeń ich włączenie lub dostosowanie.

Omówienie uproszczonego środowiska połączeń

W tej sekcji opisaliśmy główne zmiany w interfejsie związane z uproszczonym sposobem łączenia się z internetem w AOSP od Androida 12.

Kafelek Internet w Szybkich ustawieniach

Menu Szybkie ustawienia zawiera kafelek Internet, który otwiera panel Internet, w którym użytkownicy mogą przełączać się między połączeniami Wi-Fi i komórkowymi. Płytka Internet łączy w siebie płytki Wi-Fi i mobilnej transmisji danych używane w Androidzie 11 lub nowszym.

Kafelek Internet w menu Szybkie ustawienia

Rysunek 1. Kafelek Internet w Szybkich ustawieniach

Sekcja Połączenia i SMS-y w Ustawieniach

W aplikacji Ustawienia w sekcji Połączenia i SMS-y w dziale Sieć i internet znajdziesz stan dostępności oraz opcje połączeń przez 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 w sekcji Sieć i internet > Internet znajduje się przycisk resetowania, który umożliwia użytkownikom zresetowanie modemu telefonicznego i modemu Wi-Fi na urządzeniu. Może to być przydatne podczas rozwiązywania problemów z połączeniem z internetem.

Przycisk resetowania w Ustawieniach, który umożliwia rozwiązywanie problemów z połączeniem

Rysunek 3. Przycisk resetowania do rozwiązywania problemów z połączeniem

Implementacja

Aby włączyć uproszczone połączenie na urządzeniu, użyj tego parametru ustawień globalnych:

  • Nazwa: persist.sys.fflag.override.settings_provider_model
  • Typ: wartość logiczna
  • Wartość: ustaw wartość true, aby włączyć uproszczenie połączeń, lub false, aby wyłączyć uproszczenie i użyć starszego sposobu działania. Od Androida 12 ścieżka kodu dla false nie jest już aktywnie aktualizowana.

Dodatkowo możesz skonfigurować te tryby interfejsu dla poszczególnych operatorów za pomocą konfiguracji operatora. Klucze konfiguracji:

  • 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 podstawowej i wyświetlane jako część sieci komórkowej. Działa to w związku z metodą WifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged).
  • CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: wartość logiczna wskazująca, czy połączenie z siecią danych (IP) jest używane jako warunek dodatkowy do wyświetlania ikony brak połączenia.
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: wartość logiczna wskazująca, czy ikona siły połączenia jest wyświetlana w interfejsie systemu.

Interfejsy Framework API

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

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): pozwala użytkownikowi wybrać sieć operatora bez wyłączania Wi-Fi. Wyłącza wszystkie widoczne sieci Wi-Fi na co najmniej 30 minut (sterowanie za pomocą nakładki config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) i maksymalnie na 6 godzin (sterowanie za pomocą nakładki config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). Sieci Wi-Fi są ponownie włączane, gdy włączysz Wi-Fi, uruchomisz ponownie urządzenie, użytkownik wybierze sieć Wi-Fi (w tym przypadku interfejs API stopRestrictingAutoJoinToSubscriptionId() jest uruchamiany przez Ustawienia) lub 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 implementowany w klasie com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, użyj tych interfejsów API:

  • WifiManager#restartWifiSubsystem(String reason): uruchamia ponownie subsystem Wi-Fi.
  • TelephonyManager#rebootRadio(): resetuje modem radia.

Praca z wieloma operatorami

Jeśli uprościsz obsługę połączeń dla niektórych operatorów, ale nie dla innych, pamiętaj o sytuacji, w której użytkownik korzysta z 2 kart SIM – jednej od partnera operatora, który wprowadził zmiany w interfejsie, a drugiej – nie. W takim przypadku zdecyduj, które elementy interfejsu widzą użytkownicy, i dokładnie przetestuj zachowanie aplikacji na swoich urządzeniach.