Interfejs usługi połączeń

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 Wi-Fi a połączeniami komórkowymi. Płytka Internet łączy w sobie 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 wyświetlany jest 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 pozwala rozwiązywać problemy z połączeniem

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

Implementacja

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

  • Imię i nazwisko: persist.sys.fflag.override.settings_provider_model
  • Rodzaj: wartość logiczna
  • Wartość: ustaw na true, aby włączyć uproszczenie połączeń, lub na false, aby je wyłączyć i użyć 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 operatorów za pomocą konfiguracji operatora. 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 wyświetlane jako część sieci komórkowej. Działa to w zależności od metody 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): umożliwia użytkownikowi wybranie sieci 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 tym scenariuszu określ, które elementy interfejsu widzą użytkownicy, i dokładnie przetestuj działanie na swoich urządzeniach.