Giao diện người dùng cho chức năng kết nối

Trong Android 12 trở lên, nhà sản xuất thiết bị có thể tuỳ ý sử dụng trải nghiệm kết nối đơn giản để giúp người dùng hiểu rõ hơn về kết nối mạng, chuyển đổi giữa các nhà cung cấp Internet và khắc phục sự cố kết nối mạng. Những thay đổi này về trải nghiệm người dùng so với Android 11 trở xuống được thể hiện trong giao diện người dùng, biểu tượng và các thay đổi về API cho phần Cài đặt nhanh và Cài đặt. Tất cả những thay đổi này đều có trong AOSP (Dự án nguồn mở Android) để nhà sản xuất thiết bị bật nguyên trạng hoặc tuỳ chỉnh.

Tổng quan về trải nghiệm kết nối đơn giản

Phần này mô tả các thay đổi chính về giao diện người dùng của trải nghiệm kết nối được đơn giản hoá trong AOSP kể từ Android 12.

Thẻ Internet trong phần Cài đặt nhanh

Trình đơn Cài đặt nhanh có một thẻ Internet mở ra một bảng điều khiển Internet, nơi người dùng có thể chuyển đổi giữa kết nối Wi-Fi và kết nối di động. Thẻ thông tin Internet kết hợp các thẻ thông tin Wi-Fi và Dữ liệu di động dùng trong Android 11 trở xuống.

Thẻ Internet trong trình đơn Cài đặt nhanh

Hình 1. Ô Internet trong trình đơn Cài đặt nhanh

Mục Cuộc gọi và SMS trong phần Cài đặt

Ứng dụng Cài đặt có phần Cuộc gọi và tin nhắn SMS trong mục Mạng và Internet. Phần này cho biết trạng thái hoạt động và các lựa chọn gọi qua Wi-Fi.

Phần Cuộc gọi và SMS trong phần Cài đặt

Hình 2. Mục Cuộc gọi và SMS trong phần Cài đặt

Nút Đặt lại trong phần Cài đặt

Trong ứng dụng Cài đặt, phần Mạng và Internet > Internet có một nút đặt lại cho phép người dùng đặt lại modem điện thoại và Wi-Fi trên thiết bị. Điều này có thể hữu ích khi khắc phục sự cố kết nối mạng.

Nút Đặt lại trong phần Cài đặt để khắc phục sự cố kết nối

Hình 3. Nút Đặt lại để khắc phục sự cố kết nối

Triển khai

Để bật trải nghiệm kết nối đơn giản trên thiết bị, hãy sử dụng cờ cài đặt chung sau:

  • Tên: persist.sys.fflag.override.settings_provider_model
  • Loại: Boolean
  • Giá trị: Đặt thành true để bật hành vi đơn giản hoá kết nối, false để tắt hành vi này và sử dụng hành vi cũ. Kể từ Android 12, đường dẫn mã cho false không còn được duy trì tích cực.

Ngoài ra, bạn có thể định cấu hình các chế độ sau của giao diện người dùng cho từng nhà mạng bằng cách sử dụng cấu hình nhà mạng. Các khoá cấu hình là:

  • CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: Giá trị boolean cho biết nhà mạng có định cấu hình mạng Wi-Fi là một phần của mạng cốt lõi và hiển thị dưới dạng một phần của mạng di động hay không. Phương thức này hoạt động song song với phương thức WifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged).
  • CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: Giá trị boolean cho biết liệu kết nối mạng dữ liệu (IP) có được dùng làm điều kiện bổ sung để hiển thị cổng của biểu tượng không gọi hay không.
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: Giá trị boolean cho biết biểu tượng cường độ tín hiệu cuộc gọi có hiển thị trong giao diện người dùng hệ thống hay không.

API khung

Để tạm thời tắt các mạng Wi-Fi lân cận, hãy sử dụng các API sau:

  • WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): Cho phép người dùng chọn mạng của nhà mạng mà không tắt Wi-Fi. Tắt tất cả mạng Wi-Fi hiển thị trong thời lượng tối thiểu là 30 phút (được kiểm soát thông qua lớp phủ config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) và thời lượng tối đa là 6 giờ (được kiểm soát thông qua lớp phủ config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). Mạng Wi-Fi được bật lại bất cứ khi nào Wi-Fi được bật/tắt, thiết bị khởi động lại, nếu người dùng chọn một mạng Wi-Fi (trong trường hợp này, API stopRestrictingAutoJoinToSubscriptionId() được thực thi bởi phần Cài đặt) hoặc nếu mạng không hiển thị trong 60 phút.
  • WifiManager#stopRestrictingAutoJoinToSubscriptionId(): Khôi phục hoạt động bình thường.

Để hỗ trợ nút đặt lại và giao diện người dùng khắc phục sự cố được triển khai trong lớp com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager, hãy sử dụng các API sau:

  • WifiManager#restartWifiSubsystem(String reason): Khởi động lại hệ thống con Wi-Fi.
  • TelephonyManager#rebootRadio(): Đặt lại modem radio.

Làm việc với nhiều nhà mạng

Nếu bạn áp dụng trải nghiệm kết nối được đơn giản hoá cho một số nhà mạng chứ không phải các nhà mạng khác, hãy lưu ý đến trường hợp nhiều SIM, trong đó người dùng sử dụng 2 SIM, một SIM của một đối tác nhà mạng đã chọn thay đổi giao diện người dùng trong khi đối tác còn lại thì không. Trong trường hợp này, hãy nhớ quyết định giao diện người dùng mà người dùng nhìn thấy và kiểm thử kỹ hành vi trên thiết bị của bạn.