Tính năng Thời gian khứ hồi (RTT) của Wi-Fi trong Android 9 cho phép các thiết bị được hỗ trợ đo khoảng cách đến các thiết bị được hỗ trợ khác: cho dù đó là Điểm truy cập (AP) hay các thiết bị ngang hàng Wi-Fi Aware (nếu thiết bị hỗ trợ Wi-Fi Aware). Tính năng này được xây dựng dựa trên giao thức IEEE 802.11mc và IEEE 802.11az (có từ Android 15), cho phép các ứng dụng sử dụng độ chính xác và nhận biết vị trí nâng cao.
Ví dụ và nguồn
Để sử dụng tính năng này, hãy triển khai giao diện HAL của nhà cung cấp. Trong Android 14 trở lên, giao diện HAL của nhà cung cấp được xác định bằng AIDL. Trong Android 13 trở xuống, giao diện HAL của nhà cung cấp được xác định bằng HIDL. Trong Android 8.0, HIDL đã thay thế cấu trúc Lớp trừu tượng phần cứng (HAL) trước đó được dùng để tinh giản các quy trình triển khai bằng cách chỉ định các loại và lệnh gọi phương thức được thu thập vào các giao diện và gói.
Làm theo giao diện Wi-Fi để sử dụng tính năng RTT của Wi-Fi. Tuỳ thuộc vào giao diện được triển khai, đây là:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
trở lên.
Bạn có thể tham khảo HAL Wi-Fi cũ để xem cách HAL này tương quan với các giao diện AIDL và HIDL: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.
Triển khai
Để triển khai Wi-Fi RTT, bạn phải cung cấp cả khung và HAL/chương trình cơ sở:
Khung:
- Mã AOSP
- Bật RTT qua Wi-Fi: cần có một cờ tính năng
Hỗ trợ HAL Wi-Fi RTT (IEEE 802.11mc hoặc IEEE 802.11az) (nghĩa là hỗ trợ phần mềm cơ sở)
Để triển khai tính năng này, hãy triển khai giao diện Wi-Fi AIDL hoặc HIDL và bật cờ tính năng:
Trong
device.mk
nằm trongdevice/<oem>/<device>
, hãy sửa đổi biến môi trườngPRODUCT_COPY_FILES
để hỗ trợ tính năng RTT qua Wi-Fi:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
Nếu không, mọi thứ cần thiết cho tính năng này đều có trong AOSP.
Tạo địa chỉ MAC ngẫu nhiên
Để tăng cường quyền riêng tư, địa chỉ MAC được dùng trong các giao dịch RTT qua Wi-Fi phải được ngẫu nhiên hoá, tức là không được trùng khớp với địa chỉ MAC gốc của giao diện Wi-Fi. Tuy nhiên, trong trường hợp ngoại lệ, khi được liên kết với một AP, thiết bị có thể sử dụng địa chỉ MAC mà thiết bị được liên kết cho mọi giao dịch RTT với AP đó hoặc với các AP khác.
Xác nhận kết quả
Bộ kiểm tra tính tương thích (CTS) với Android có các kiểm thử cho tính năng này. CTS phát hiện khi tính năng này được bật và tự động đưa các kiểm thử liên quan vào. Bạn cũng có thể kiểm thử tính năng này bằng Vendor Test Suite (VTS).
Kiểm thử đơn vị
Các kiểm thử gói Wi-Fi RTT được thực thi bằng cách sử dụng:
Kiểm thử dịch vụ:
atest com.android.server.wifi.rtt
Kiểm thử người quản lý:
atest android.net.wifi.rtt
CTS
Bộ kiểm tra tính tương thích (CTS) với Android có các kiểm thử cho tính năng này. CTS phát hiện khi tính năng này được bật và tự động đưa các kiểm thử liên quan vào. Điểm truy cập hỗ trợ Wi-Fi RTT (IEEE 802.11mc) phải nằm trong phạm vi của thiết bị đang được kiểm thử.
Bạn có thể kích hoạt các quy trình kiểm thử CTS bằng cách sử dụng:
atest WifiRttTest
Hiệu chuẩn
Để Wi-Fi RTT hoạt động hiệu quả, các dải tần số được trả về trong giao thức 802.11mc hoặc 802.11az phải chính xác trong các chỉ báo hiệu suất chính (KPI) như mô tả trong phần này.
Đối với giao thức 11mc, ở các băng thông được liệt kê (80 MHz, 40 MHz, 20 MHz) và kích thước gói là 8, KPI cho ước tính phạm vi dự kiến sẽ đạt được độ chính xác sau ở phân vị thứ 90 của lỗi.
- 80 MHz: 2 mét
- 40 MHz: 4 mét
- 20 MHz: 8 mét
Đối với giao thức 11az, cấu hình MIMO của ăng-ten và tần số lặp lại trường huấn luyện dài (LTF) ảnh hưởng đến độ chính xác. Với một điện thoại di động thông thường (sử dụng 2 ăng-ten) và điểm truy cập (4 ăng-ten), hệ thống có cấu hình MIMO 2x4. Đối với cấu hình như vậy, sử dụng hệ số lặp lại LTF là 2 và ở các băng thông được liệt kê (160 MHz, 80 MHz, 40 MHz, 20 MHz), KPI cho ước tính phạm vi dự kiến sẽ đạt được độ chính xác sau đây ở phân vị thứ 90 của lỗi.
- 160 MHz: 0,5 mét
- 80 MHz: 1 mét
- 40 MHz: 2 mét
- 20 MHz: 4 mét
Để đảm bảo việc triển khai tính năng này hoạt động chính xác, bạn cần phải kiểm tra hiệu chuẩn.
Bạn có thể đạt được điều này bằng cách so sánh phạm vi thực tế với phạm vi ước tính RTT ở khoảng cách ngày càng tăng. Để đảm bảo tuân thủ các yêu cầu cơ bản, bạn nên xác thực giải pháp của mình trên một thiết bị đã được hiệu chỉnh RTT. Bạn nên kiểm tra việc hiệu chỉnh phạm vi trong các điều kiện sau:
- Một phòng thí nghiệm mở rộng hoặc một hành lang không có nhiều vật thể kim loại có thể dẫn đến hiện tượng đa đường truyền xuất hiện với tần suất cao bất thường.
- Ít nhất phải có một đường hoặc lối đi thẳng (LOS) dài 25 m.
- Các điểm đánh dấu cách nhau 0,5 mét từ đầu đường đua đến cuối đường đua.
Một nơi để cố định điểm truy cập có hỗ trợ RTT ở một đầu của đường chạy, được gắn cách sàn 20 cm và một giá đỡ di động cho điện thoại Android (hoặc thiết bị di động Android khác đang được kiểm thử) có thể di chuyển dọc theo đường chạy và căn chỉnh với các điểm đánh dấu 0, 5 m, cũng cách sàn 20 cm.
Bạn nên ghi lại 50 kết quả đo khoảng cách tại mỗi điểm đánh dấu, cùng với khoảng cách từ điểm truy cập. Bạn nên tính toán các số liệu thống kê, chẳng hạn như phương sai và giá trị trung bình của phạm vi cho từng vị trí điểm đánh dấu.
Từ kết quả ở bước 5, bạn có thể vẽ một biểu đồ cho dữ liệu thực (trục x) so với phạm vi ước tính (trục y) và ước tính đường hồi quy phù hợp nhất. Việc hiệu chuẩn thiết bị lý tưởng sẽ tạo ra một đường thẳng có độ dốc là 1,0, với độ lệch 0,0 m trên trục y. Bạn có thể chấp nhận những sai lệch so với các giá trị này nếu chúng nằm trong KPI cho băng thông tương ứng. Nếu kết quả nằm ngoài KPI, bạn nên hiệu chỉnh lại tính năng của thiết bị để đưa kết quả vào trong quy cách KPI.