Interfejs łączności

Na urządzeniach z Androidem 12 lub nowszym producenci mogą opcjonalnie wprowadzić uproszczony sposób łączenia się z siecią, który ułatwia użytkownikom zrozumienie połączeń sieciowych, przełączanie się między dostawcami internetu i rozwiązywanie problemów z łącznością. Te zmiany w środowisku użytkownika w porównaniu z Androidem 11 lub starszym są widoczne w interfejsie, ikonach i zmianach w interfejsie API w przypadku szybkich ustawień i ustawień. Wszystkie te zmiany są dostępne w AOSP, dzięki czemu producenci urządzeń mogą je włączać w niezmienionej postaci lub dostosowywać.

Omówienie uproszczonego połączenia

W tej sekcji opisujemy główne zmiany w interfejsie użytkownika uproszczonego połączenia w AOSP od Androida 12.

Kafelek Internet w Szybkich ustawieniach

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

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 Sieć i internet znajduje się sekcja Połączenia i SMS-y, w której wyświetlany jest stan dostępności i opcje rozmów przez Wi-Fi.

Sekcja Połączenia i SMS-y w Ustawieniach

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

Przycisk Resetuj w Ustawieniach

W aplikacji Ustawienia w sekcji Sieć i internet > Internet znajduje się przycisk resetowania, który umożliwia użytkownikom zresetowanie modemów telefonicznych i Wi-Fi na urządzeniu. Może to być przydatne podczas rozwiązywania problemów z łącznością sieciową.

Przycisk Resetuj w Ustawieniach do rozwiązywania problemów z połączeniem

Rysunek 3. Przycisk resetowania do rozwiązywania problemów z łącznością

Implementacja

Aby włączyć uproszczone połączenie na urządzeniu, użyj tego globalnego ustawienia:

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

Dodatkowo możesz skonfigurować te tryby interfejsu dla poszczególnych przewoźników za pomocą konfiguracji przewoźnika. Klucze konfiguracji 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 podstawowej 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 warunek dodatkowy do ograniczenia wyświetlania ikony brak połączeń.
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: wartość logiczna wskazująca, czy ikona siły sygnału jest wyświetlana w interfejsie systemu.

Interfejsy API platformy

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

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): umożliwia użytkownikowi wybranie sieci komórkowej bez wyłączania Wi-Fi. Wyłącza wszystkie widoczne sieci Wi-Fi na co najmniej 30 minut (czas trwania jest kontrolowany za pomocą nakładki config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) i maksymalnie 6 godzin (czas trwania jest kontrolowany za pomocą nakładki config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). Sieci Wi-Fi są ponownie włączane, gdy Wi-Fi jest przełączane, urządzenie jest ponownie uruchamiane, użytkownik wybierze sieć Wi-Fi (w takim przypadku interfejs stopRestrictingAutoJoinToSubscriptionId() API jest wykonywany przez Ustawienia) lub gdy 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 klasiecom.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, użyj tych 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 w przypadku niektórych operatorów wprowadzisz uproszczoną łączność, a w przypadku innych nie, pamiętaj o scenariuszu z wieloma kartami SIM, w którym użytkownik używa dwóch kart SIM, z których jedna pochodzi od operatora partnerskiego, który zdecydował się na zmiany w interfejsie, a druga nie. W takim przypadku zdecyduj, który interfejs użytkownicy będą widzieć, i dokładnie przetestuj działanie na swoich urządzeniach.