Quét giảm tải mạng ưu tiên Wi-Fi

Quét giảm tải mạng ưu tiên Wi-Fi (PNO) là quét tìm Wi-Fi công suất thấp xảy ra định kỳ khi một thiết bị bị ngắt kết nối khỏi Wi-Fi và màn hình đang tắt. Quy trình quét PNO được dùng để tìm và kết nối với các mạng đã lưu. Các lần quét này được khung lên lịch bằng cách sử dụng Lệnh NL80211_CMD_START_SCHED_SCAN. Để biết thêm thông tin, hãy xem nl80211.h.

Tối ưu hoá mức sử dụng pin bằng thông tin về khả năng di chuyển của thiết bị

Trên các thiết bị chạy Android 9 trở xuống, khi thiết bị bị ngắt kết nối khỏi Wi-Fi và màn hình tắt, quá trình quét PNO diễn ra sau 20 giây khoảng thời gian cho ba lần quét đầu tiên, sau đó giảm dần xuống một lần quét mỗi 60 giây cho tất cả các lần quét tiếp theo. Quá trình quét PNO sẽ ngừng khi tìm thấy một mạng đã lưu hoặc màn hình sẽ được bật.

Android 10 ra mắt một phương thức API không bắt buộc có tên là setDeviceMobilityState() trong WifiManager làm tăng khoảng thời gian giữa PNO quét dựa trên trạng thái di động của thiết bị để giảm mức tiêu thụ điện năng.

Các trạng thái di chuyển có thể là:

  • DEVICE_MOBILITY_STATE_UNKNOWN: Khả năng di chuyển không xác định
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: Trên xe đạp hoặc xe cơ giới
  • DEVICE_MOBILITY_STATE_LOW_MVMT: Đi bộ hoặc chạy bộ
  • DEVICE_MOBILITY_STATE_STATIONARY: Bạn chưa di chuyển

Nếu thiết bị đang đứng yên, khung Android sẽ tăng khoảng thời gian giữa các lần quét PNO từ 60 giây đến 180 giây để giảm điện năng người dùng. Quá trình tối ưu hoá này được thực hiện dựa trên giả định rằng thiết bị không thể tìm thấy bất kỳ mạng mới nào trong quá trình quét PNO khi thiết bị không di chuyển.

Nếu thiết bị ở bất kỳ trạng thái di động nào khác hoặc nếu phương thức không được gọi, sẽ sử dụng hành vi quét PNO mặc định.

Triển khai

Để triển khai tính năng tối ưu hoá nguồn pin này trên một thiết bị chạy Android 10 trở lên, lấy thông tin về khả năng di chuyển của thiết bị và gọi phương thức setDeviceMobilityState() từ một ứng dụng hệ thống tuỳ chỉnh.