Tính năng Wi-Fi Direct (còn gọi là Wi-Fi P2P) cho phép các thiết bị được hỗ trợ khám phá và kết nối trực tiếp với nhau bằng giao thức Wi-Fi Direct mà không cần truy cập vào Internet hoặc mạng di động. Tính năng này được xây dựng dựa trên thông số kỹ thuật Wi-Fi Direct của Wi-Fi Alliance (WFA) cho phép chia sẻ dữ liệu thông lượng cao giữa các thiết bị tin cậy và ứng dụng mà không kết nối với mạng.
Ví dụ và nguồn
Để sử dụng tính năng này, nhà sản xuất thiết bị phải triển khai các giao diện HAL của Nhà cung cấp Wi-Fi và Bên yêu cầu.
Trong Android 13, giao diện Bên yêu cầu sử dụng AIDL cho định nghĩa HAL. Trong Android 14 trở lên, giao diện HAL của Nhà cung cấp sử dụng AIDL. Trong Android 12 trở xuống, các giao diện HAL của Bên yêu cầu và Nhà cung cấp được xác định bằng HIDL.
Bạn cần có các bề mặt HAL Wi-Fi sau đây để sử dụng tính năng Wi-Fi Direct:
hardware/interfaces/wifi/aidlhoặchardware/interfaces/wifi/1.3trở lênhardware/interfaces/wifi/supplicant/aidlhoặchardware/interfaces/wifi/supplicant/1.2trở lên
Triển khai
Nhà sản xuất thiết bị cần cung cấp cả khung và hỗ trợ HAL/firmware:
- Khung:
- Mã AOSP
- Bật Wi-Fi Direct: Yêu cầu một cờ tính năng
- Hỗ trợ HAL Wi-Fi Direct (P2P) (ngụ ý hỗ trợ firmware)
Để triển khai tính năng này, nhà sản xuất thiết bị sẽ triển khai các giao diện Wi-Fi HIDL hoặc AIDL và bật cờ tính năng cho Wi-Fi Direct. Trong device.mk nằm
trong device/<oem>/<device>, hãy sửa đổi biến môi trường PRODUCT_COPY_FILES để hỗ trợ tính năng Wi-Fi Direct:
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
Tất cả các yêu cầu khác để hỗ trợ Wi-Fi Direct đều có trong AOSP.
Sắp xếp ngẫu nhiên địa chỉ MAC
Android yêu cầu sắp xếp ngẫu nhiên địa chỉ thiết bị và địa chỉ giao diện của Wi-Fi Direct. Các địa chỉ này phải khác với địa chỉ MAC thực của thiết bị và phải đáp ứng những yêu cầu sau:
- Địa chỉ thiết bị Wi-Fi Direct phải được sắp xếp ngẫu nhiên khi tạo giao diện nếu không có nhóm vĩnh viễn nào được lưu; nếu không, địa chỉ thiết bị phải tiếp tục sử dụng địa chỉ MAC được tạo gần đây nhất.
- Địa chỉ giao diện Wi-Fi Direct (còn gọi là địa chỉ nhóm) phải được sắp xếp ngẫu nhiên mỗi khi thiết lập kết nối.
Tính năng sắp xếp ngẫu nhiên địa chỉ MAC của Wi-Fi Direct được triển khai trong "wpa_supplicant" và được kiểm soát bằng hai cấu hình: p2p_device_random_mac_addr và p2p_interface_random_mac_addr.
Để bật tính năng này, nhà sản xuất thiết bị phải:
- Triển khai API
ISupplicantP2pIface::setMacRandomizationcủa Bên yêu cầu Wi-Fi. Tuỳ thuộc vào giao diện được triển khai, API này nằm trong:hardware/interface/wifi/supplicant/1.2cho HIDLhardware/interface/wifi/supplicant/aidlcho AIDL
- Đặt
config_wifi_p2p_mac_randomization_supportedthành "true" trong lớp phủ tuỳ chỉnh của 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 tra 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 Direct. Bạn cũng có thể kiểm thử Wi-Fi Direct bằng Bộ kiểm thử nhà cung cấp (VTS).
Kiểm thử đơn vị
Xác minh gói Wi-Fi Direct bằng các kiểm thử sau.
Kiểm thử dịch vụ:
atest com.android.server.wifi.p2pKiểm thử trình quản lý:
atest android.net.wifi.p2pKiểm thử Bộ kiểm tra tính tương thích (CTS)
Sử dụng các kiểm thử CTS để xác thực tính năng Wi-Fi Direct. 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.
Để kích hoạt các kiểm thử CTS, hãy chạy:
atest android.net.wifi.p2p.ctsKiểm thử Trình xác minh CTS
Các kiểm thử Trình xác minh CTS xác thực hành vi của Wi-Fi Direct bằng hai thiết bị: một thiết bị kiểm thử và một thiết bị đã biết là hoạt động tốt. Để chạy các kiểm thử, hãy mở Trình xác minh CTS rồi chuyển đến phần có tiêu đề Kiểm thử Wi-Fi Direct.