Wi-Fi Direct

Tính năng Wi-Fi Direct (còn gọi là Wi-Fi P2P) cho phép các thiết bị hỗ trợ phát hiện 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 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 Liên minh Wi-Fi (WFA), cho phép chia sẻ dữ liệu có tốc độ truyền cao giữa các thiết bị và ứng dụng đáng tin cậy không 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ị phải triển khai giao diện Wi-Fi Vendor và Supplicant HAL.

Trong Android 13, giao diện Supplipli 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, giao diện Supplicant và giao diện HAL của nhà cung cấp được xác định bằng HIDL.

Bạn cần có các nền tảng Wi-Fi HAL sau đây để sử dụng tính năng Wi-Fi Direct:

  • hardware/interfaces/wifi/aidl hoặc hardware/interfaces/wifi/1.3 trở lên
  • hardware/interfaces/wifi/supplicant/aidl hoặc hardware/interfaces/wifi/supplicant/1.2 trở lên

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:

  • Khung:
    • Mã AOSP
    • Bật Wi-Fi Direct: Yêu cầu cờ tính năng
  • Hỗ trợ HAL cho Wi-Fi Direct (P2P) (ngụ ý rằng hỗ trợ chương trình cơ sở)

Để triển khai tính năng này, nhà sản xuất thiết bị triển khai 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 MAC

Android yêu cầu địa chỉ thiết bịđịa chỉ giao diện Wi-Fi Direct phải được chọn ngẫu nhiên. Địa chỉ MAC giả phải khác với địa chỉ MAC thực của thiết bị và phải đáp ứng các yêu cầu sau:

  • Địa chỉ thiết bị Wi-Fi Direct phải được tạo ngẫu nhiên khi tạo giao diện nếu không có nhóm ổn định 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 tạo ngẫu nhiên mỗi khi thiết lập kết nối.

Tính năng tạo địa chỉ MAC ngẫu nhiên cho Wi-Fi Direct được triển khai trong "wpa_supplicant" và được kiểm soát bằng hai cấu hình là p2p_device_random_mac_addrp2p_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 Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization. Tuỳ thuộc vào giao diện được triển khai, các bước này có thể là:
    • hardware/interface/wifi/supplicant/1.2 cho HIDL
    • hardware/interface/wifi/supplicant/aidl cho AIDL
  • Đặt config_wifi_p2p_mac_randomization_supported thà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 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 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.p2p

Kiểm thử trình quản lý:

atest android.net.wifi.p2p

Các bài kiểm thử của Bộ kiểm tra tính tương thích (CTS)

Sử dụng các bài kiểm thử CTS để xác thực tính năng Wi-Fi Direct. CTS phát hiện thời điểm 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 bài kiểm thử CTS, hãy chạy:

% atest android.net.wifi.p2p.cts

Kiểm thử bằng CTS Verifier

Các kiểm thử của Trình xác minh CTS xác thực hành vi của Wi-Fi Direct bằng cách sử dụng hai thiết bị: một thiết bị kiểm thử và một thiết bị đã biết là tốt. Để chạy các bài 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.