Chiến lược phát hành đĩa đơn Nhận biết được Wi-Fi được thêm vào trong Android 8.0 cho phép các thiết bị hỗ trợ khám phá, kết nối, và dải ô (được thêm vào Android 9) trực tiếp với nhau bằng giao thức Nhận biết Wi-Fi mà không cần truy cập Internet hoặc mạng di động. Chiến dịch này được xây dựng dựa trên Liên minh Wi-Fi (WFA) Thông số kỹ thuật của tính năng Nhận biết Wi-Fi (phiên bản 2.0, 3.0, 3.1 và 4.0), cho phép chia sẻ dễ dàng dữ liệu thông lượng cao trong số các thiết bị đáng tin cậy và ứng dụng không thuộc mạng.
Ví dụ và nguồn
Để sử dụng tính năng này, nhà sản xuất thiết bị nên triển khai HAL của nhà cung cấp Wi-Fi. Trong Android 14 trở lên, giao diện HAL của nhà cung cấp được xác định bằng AIDL. Đối với Android 13 trở xuống: giao diện HAL của nhà cung cấp được xác định bằng HIDL.
Làm theo giao diện Wi-Fi để sử dụng tính năng Wi-Fi Aware. Tuỳ thuộc vào giao diện được triển khai, có thể là:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
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/wifi_nan.h.
Triển khai
Nhà sản xuất thiết bị cần cung cấp cả khung và hỗ trợ HAL/phần mềm cơ sở:
- Khung:
- Mã AOSP (Dự án nguồn mở Android)
- Bật tính năng Nhận biết: Yêu cầu cả cờ tính năng và cờ bản dựng
- Hỗ trợ HAL Wi-Fi Aware (NAN) (ngụ ý hỗ trợ phần mềm cơ sở)
Để triển khai tính năng này, nhà sản xuất thiết bị sẽ triển khai giao diện Wi-Fi và bật hai cờ tính năng:
Trong
BoardConfig.mk
hoặcBoardConfig-common.mk
nằm trongdevice/<oem>/<device>
, hãy thêm cờ sau:WIFI_HIDL_FEATURE_AWARE := true
Trong
device.mk
nằm ởdevice/<oem>/<device>
, hãy sửa đổi Biến môi trườngPRODUCT_COPY_FILES
để bao gồm tính năng hỗ trợ Wi-Fi Tính năng nâng cao:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
Nhận biết Wi-Fi bao gồm khả năng kết nối với nhiều thiết bị ngang hàng sử dụng giao thức IEEE 802.11mc, còn được gọi là Thời gian trọn vòng (RTT). Tính năng phụ này của Wi-Fi Aware phụ thuộc vào việc thiết bị có hỗ trợ tính năng Wi-Fi RTT hay không, tức là yêu cầu thiết bị hỗ trợ cả Wi-Fi Aware và Wi-Fi RTT. Để biết thêm thông tin, hãy xem Tin nhắn theo thời gian thực (RTT) của Wi-Fi.
Nếu không, mọi thứ cần thiết cho tính năng này đều có trong AOSP.
Cờ WIFI_HIDL_FEATURE_AWARE
sẽ bị bỏ qua nếu bạn chỉ định cờ WIFI_HAL_INTERFACE_COMBINATIONS
. Để biết thêm thông tin, hãy xem phần Đồng thời nhiều giao diện Wi-Fi.
Sắp xếp ngẫu nhiên MAC
Android yêu cầu địa chỉ MAC của tính năng phát hiện Wi-Fi Aware (NMI) và giao diện dữ liệu (NDP) phải được tạo ngẫu nhiên và không giống với địa chỉ MAC thực của thiết bị. Địa chỉ MAC phải:
- Được tạo ngẫu nhiên bất cứ khi nào bạn bật hoặc bật lại tính năng Wi-Fi Aware.
Khi bật Wi-Fi Aware, địa chỉ MAC phải được tạo ngẫu nhiên theo một khoảng thời gian thông thường do tham số
NanConfigRequest.macAddressRandomizationIntervalSec
định cấu hình. Theo mặc định, khung này được định cấu hình là 30 phút.
Suspend và resume
Trên Android 14 trở lên, Wi-Fi Aware hỗ trợ tính năng cho phép các ứng dụng đặc quyền tạm ngưng và tiếp tục các phiên khám phá đang hoạt động (bao gồm cả tất cả đường dẫn dữ liệu liên kết với các phiên đó). Ủng hộ nội dung này cho phép thiết bị tiếp tục phiên khám phá nhanh hơn và sử dụng ít năng lượng hơn vì phiên khám phá có thể bị tạm ngưng.
Nếu một thiết bị hỗ trợ khả năng tạm ngưng và tiếp tục này, thì chương trình cơ sở sẽ tạm ngưng phiên Wi-Fi Aware khi một ứng dụng đặc quyền tạm ngưng phiên khám phá. Khi phiên khám phá ở trạng thái bị tạm ngưng, thiết bị sẽ không truyền dữ liệu hoặc nhận bất kỳ khung hình nào cho phiên đó, bao gồm mọi NDP đang hoạt động trong phiên đó phiên hoạt động. Nếu tất cả các phiên khám phá bị tạm ngưng, thiết bị sẽ không truyền hoặc nhận bất kỳ khung Wi-Fi Aware nào.
Khi một ứng dụng đặc quyền tiếp tục một phiên khám phá bị tạm ngưng, khung này sẽ trả về phiên đó về trạng thái trước đó, bao gồm cả tất cả các phiên NDP được liên kết. Việc tiếp tục phiên khám phá bị tạm ngưng sẽ nhanh hơn việc hiển thị Nhận biết Wi-Fi và tạo phiên khám phá mới.
Để hỗ trợ khả năng tạm ngưng và tiếp tục các phiên khám phá, nhà sản xuất thiết bị phải cung cấp tính năng hỗ trợ HAL và chương trình cơ sở. Để biết thông tin chi tiết, hãy xem IWifiNanIface.java
.
Nhà sản xuất thiết bị có thể sử dụng giao tiếp ngoài băng tần (ví dụ: BLE) để đồng bộ hoá trạng thái tạm ngưng và tiếp tục trên nhiều thiết bị.
Xác nhận kết quả
Android cung cấp một bộ kiểm thử đơn vị, kiểm thử Bộ kiểm thử tính tương thích (CTS) và kiểm thử Trình xác minh CTS để xác thực tính năng Wi-Fi Aware. Bạn cũng có thể kiểm thử Wi-Fi Aware bằng cách sử dụng Bộ kiểm thử nhà cung cấp (VTS).
Kiểm thử đơn vị
Các kiểm thử gói Wi-Fi Aware được thực thi bằng:
Kiểm thử dịch vụ:
atest com.android.server.wifi.aware
Thử nghiệm dành cho người quản lý:
atest android.net.wifi.aware
Các bài kiểm thử của Bộ kiểm tra tính tương thích (CTS)
Sử dụng thử nghiệm CTS để xác thực tính năng Nhận biết Wi-Fi. CTS phát hiện khi tính năng được bật và tự động bao gồm các thử nghiệm liên quan.
Bạn có thể kích hoạt các kiểm thử CTS bằng:
atest SingleDeviceTest
Kiểm thử bằng CTS Verifier
Các thử nghiệm Trình xác minh CTS xác thực hành vi Nhận biết Wi-Fi bằng hai thiết bị: thử nghiệm và một thiết bị phổ biến. Để chạy các bài kiểm thử, hãy mở CTS Verifier rồi chuyển đến phần có tiêu đề Wi-Fi Aware Tests (Kiểm thử Wi-Fi Aware).