Tính năng Thời gian truyền dữ liệu qua lại (RTT) của Wi-Fi trong Android 9 cho phép các thiết bị hỗ trợ đo lường khoảng cách đến các thiết bị hỗ trợ khác: cho dù đó là Điểm truy cập (AP) hay thiết bị ngang hàng có hỗ trợ Wi-Fi Aware (nếu Wi-Fi Aware được hỗ trợ trên thiết bị). 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ó trên 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 Nhà cung cấp HAL. 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 đó dùng để đơn giản hoá việc 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 giao diện và gói.
Làm theo giao diện Wi-Fi để sử dụng tính năng RTT 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 giao diện AIDL và HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.
Triển khai
Để triển khai Wi-Fi RTT, bạn phải cung cấp cả khung và tính năng hỗ trợ HAL/chương trình cơ sở:
Khung:
- Mã AOSP
- Bật Wi-Fi RTT: cần có cờ tính năng
Hỗ trợ HAL Wi-Fi RTT (IEEE 802.11mc hoặc IEEE 802.11az) (ngụ ý hỗ trợ firmware)
Để 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 Wi-Fi RTT: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.
Sắp xếp ngẫu nhiên MAC
Để tăng cường quyền riêng tư, địa chỉ MAC dùng trong các giao dịch RTT qua Wi-Fi phải được tạo ngẫu nhiên, tức là không được 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 được liên kết với thiết bị đó 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ả
Có các bài kiểm thử Bộ kiểm tra tính tương thích (CTS) với Android cho tính năng này. CTS phát hiện thời điểm bật tính năng này và tự động đưa các bài 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 Bộ thử nghiệm dành cho nhà cung cấp (VTS).
Kiểm thử đơn vị
Các hoạt động kiểm thử gói RTT của Wi-Fi được thực thi bằng:
Kiểm thử dịch vụ:
atest com.android.server.wifi.rtt
Kiểm thử trình quản lý:
atest android.net.wifi.rtt
CTS
Có các bài kiểm tra Bộ kiểm tra tính tương thích (CTS) với Android cho tính năng này. CTS phát hiện thời điểm bật tính năng này và tự động đưa các bài 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 kiểm thử CTS bằng:
atest WifiRttTest
Hiệu chỉnh
Để RTT của Wi-Fi hoạt động hiệu quả, phạm vi được trả về trong các giao thức 802.11mc hoặc 802.11az phải chính xác theo 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, tại 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 số liệu ước tính phạm vi dự kiến sẽ đạt được độ chính xác tại 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à việc lặp lại trường huấn luyện dài (LTF) sẽ ả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 thử việc hiệu chỉnh.
Bạn có thể thực hiện việc này bằng cách so sánh phạm vi thực tế với phạm vi ước tính RTT với các khoảng cách tăng dần. Để 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 dựa trên một thiết bị đã được hiệu chỉnh RTT. Bạn nên kiểm thử việc hiệu chuẩn phạm vi trong các điều kiện sau:
- Một phòng thí nghiệm lớn, không có nhiều đối tượng bằng kim loại có thể dẫn đến tình trạng nhiều đường dẫn xuất hiện với tần suất cao bất thường.
- Ít nhất một đường dẫn hoặc đường đi theo Đường ngắm (LOS) kéo dài 25 m.
- Các điểm đánh dấu tăng dần 0,5 mét từ đầu đường băng đến cuối đường băng.
Một vị trí để bảo vệ điểm truy cập có khả năng RTT ở một đầu của đường ray đượ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 ray 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.
50 kết quả đo khoảng cách sẽ được ghi lại 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 số liệu thống kê, chẳng hạn như trung bình và phương sai của dải ô, 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 đồ dựa trên giá trị thực tế (trục x) với phạm vi ước tính (trục y) và đường hồi quy phù hợp nhất ước tính. Quá trình hiệu chuẩn thiết bị lý tưởng sẽ tạo ra một đường chuyển màu 1.0, với độ dời 0.0m trên trục y. Bạn có thể chấp nhận sự chênh 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, thì tính năng của thiết bị phải được hiệu chỉnh lại để mang lại kết quả đúng với chỉ số KPI.