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, 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 opisujemy główne zmiany w interfejsie uproszczonego połączenia w AOSP począwszy od Androida 12.

Kafelek Internet w Szybkich ustawieniach

Menu Szybkie ustawienia zawiera kafelek Internet otwierający panel internetowy, 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 Mobilna transmisja 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

Aplikacja Ustawienia zawiera sekcję Połączenia i SMS-y w obszarze Sieć i internet, w której sprawdzisz stan dostępności i 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 do rozwiązywania problemów 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:

  • Nazwa: persist.sys.fflag.override.settings_provider_model
  • Typ: wartość logiczna
  • Wartość: ustaw true, aby włączyć działanie upraszczające połączenie, false, aby je wyłączyć i korzystać ze starszego działania. Od Androida 12 ścieżka kodu dla false nie jest już aktywnie aktualizowana.

Dodatkowo możesz skonfigurować następujące tryby interfejsu dla poszczególnych operatorów, korzystając z 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 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 API platformy

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 po każdym włączeniu Wi-Fi, urządzenie jest ponownie uruchamiane, gdy użytkownik wybierze sieć Wi-Fi (w takim przypadku interfejs API stopRestrictingAutoJoinToSubscriptionId() jest wykonywany w Ustawieniach) lub gdy sieć nie jest widoczna przez 60 minut.
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId(): przywraca normalne działanie.

Do obsługi przycisku resetowania i interfejsu rozwiązywania problemów, który jest zaimplementowany w klasie com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, użyj tych interfejsów API:

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

Współpracuj 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 zachowanie aplikacji na swoich urządzeniach.