Giao diện người dùng về khả năng kết nối

Trong Android 12 trở lên, các nhà sản xuất thiết bị có thể tuỳ ý áp dụng trải nghiệm kết nối đơn giản hoá để giúp người dùng hiểu rõ hơn về các kết nối mạng, chuyển đổi giữa các nhà cung cấp dịch vụ Internet và khắc phục các vấn đề về 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, hệ thống biểu tượng và các thay đổi về API đối với phần Cài đặt nhanh và Cài đặt. Tất cả những thay đổi này đều có trong AOSP để các nhà sản xuất thiết bị có thể 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ả những thay đổi lớn về giao diện người dùng của trải nghiệm kết nối đơn giản hoá trong AOSP, bắt đầu từ Android 12.

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

Trình đơn Cài đặt nhanh có một ô 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. Ô Internet kết hợp ô Wi-Fi và ô Dữ liệu di động được dùng trong Android 11 trở xuống.

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

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

Phần 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à SMS trong mục Mạng và Internet. Phần này cho biết trạng thái cung cấp dịch vụ 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. Phần 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, 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ị. Nút này có thể hữu ích khi khắc phục sự cố về khả năng kết nối mạng.

Nút Đặt lại trong phần Cài đặt để khắc phục các vấn đề về 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 chế độ kết nối đơn giản trên thiết bị, hãy 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ì nữa.

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

  • CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: Một giá trị boolean cho biết liệu nhà mạng có định cấu hình mạng Wi-Fi thuộc mạng lõi của nhà mạng và xuất hiện trong 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: Một 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 để kiểm soát việc hiển thị biểu tượng không gọi được hay không.
  • CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: Một giá trị boolean cho biết biểu tượng cường độ cuộc gọi có xuất hiện trong giao diện người dùng hệ thống hay không.

Framework API

Để 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 cần tắt Wi-Fi. Tắt tất cả các mạng Wi-Fi hiển thị trong thời gian tối thiểu là 30 phút (được kiểm soát thông qua lớp phủ config_wifiAllNonCarrierMergedWifiMinDisableDurationMinutes) và thời gian tối đa là 6 giờ (được kiểm soát thông qua lớp phủ config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes). Mạng Wi-Fi sẽ được bật lại bất cứ khi nào Wi-Fi được bật/tắt, thiết bị được 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() sẽ được Cài đặt thực thi) hoặc nếu mạng không xuất hiện 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 vô tuyến.

Làm việc với nhiều hãng vận chuyển

Nếu bạn áp dụng trải nghiệm kết nối đơn giản cho một số nhà mạng nhưng không áp dụng cho những nhà mạng khác, hãy lưu ý đến trường hợp sử dụng nhiều SIM, trong đó người dùng sử dụng 2 SIM, một SIM của đối tác nhà mạng đã chọn thay đổi giao diện người dùng, còn SIM kia thì chưa. 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ỹ lưỡng hành vi trên thiết bị của bạn.