WiFi Direct

ฟีเจอร์ Wi-Fi Direct หรือที่เรียกว่า Wi-Fi P2P ช่วยให้อุปกรณ์ที่รองรับค้นหาและเชื่อมต่อ ถึงกันได้โดยตรง โดยใช้โปรโตคอล Wi-Fi Direct โดยไม่ต้องเข้าถึงอินเทอร์เน็ตหรือเครือข่ายมือถือ ฟีเจอร์นี้สร้างขึ้นตามWi-Fi Alliance (WFA) ข้อกำหนด Wi-Fi Direct ช่วยให้แชร์ข้อมูลที่มีปริมาณงานสูงระหว่างอุปกรณ์และแอปที่เชื่อถือได้ซึ่งอยู่นอกเครือข่าย

ตัวอย่างและแหล่งที่มา

หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ต้องใช้ Wi-Fi Vendor และ Supplicant HAL

ใน Android 13 อินเทอร์เฟซ Supplicant จะใช้ AIDL สำหรับคำจำกัดความ HAL ใน Android 14 ขึ้นไป อินเทอร์เฟซ HAL ของผู้ให้บริการจะใช้ AIDL ใน Android 12 และต่ำกว่า อินเทอร์เฟซ Supplicant และ Vendor HAL จะกำหนดโดยใช้ HIDL

ต้องมี HAL ของ Wi-Fi ต่อไปนี้เพื่อใช้ฟีเจอร์ Wi-Fi Direct

  • hardware/interfaces/wifi/aidl หรือ hardware/interfaces/wifi/1.3 ขึ้นไป
  • hardware/interfaces/wifi/supplicant/aidl หรือ hardware/interfaces/wifi/supplicant/1.2 ขึ้นไป

การใช้งาน

ผู้ผลิตอุปกรณ์ต้องให้การรองรับทั้งเฟรมเวิร์กและ HAL/เฟิร์มแวร์

  • เฟรมเวิร์ก
    • โค้ด AOSP
    • เปิดใช้ Wi-Fi Direct: ต้องใช้ฟีเจอร์แฟล็ก
  • การรองรับ HAL ของ Wi-Fi Direct (P2P) (ซึ่งหมายถึงการรองรับเฟิร์มแวร์)

หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์จะใช้ HIDL หรือ AIDL ของ Wi-Fi และเปิดใช้แฟล็กฟีเจอร์สำหรับ Wi-Fi Direct ใน device.mk ที่อยู่ใน device/<oem>/<device> ให้แก้ไขPRODUCT_COPY_FILESตัวแปรสภาพแวดล้อม เพื่อให้รองรับฟีเจอร์ 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
```

ข้อกำหนดอื่นๆ ทั้งหมดสำหรับการรองรับ Wi-Fi Direct จะรวมอยู่ใน AOSP

การสุ่ม MAC

Android กำหนดให้ต้องสุ่มที่อยู่อุปกรณ์และที่อยู่อินเทอร์เฟซของ Wi-Fi Direct โดยต้องแตกต่างจากที่อยู่ MAC จริงของ อุปกรณ์และต้องเป็นไปตามข้อกำหนดต่อไปนี้

  • ที่อยู่อุปกรณ์ Wi-Fi Direct ต้องเป็นแบบสุ่มเมื่อสร้างอินเทอร์เฟซหากไม่มีกลุ่มถาวรที่บันทึกไว้ มิฉะนั้นที่อยู่อุปกรณ์ต้องใช้ที่อยู่ MAC ที่สร้างล่าสุดต่อไป
  • ที่อยู่อินเทอร์เฟซ Wi-Fi Direct หรือที่เรียกอีกอย่างว่าที่อยู่กลุ่ม ต้องสุ่มทุกครั้งที่มีการสร้างการเชื่อมต่อ

การสุ่ม MAC สำหรับ Wi-Fi Direct จะใช้งานใน "wpa_supplicant" และควบคุม โดยการกำหนดค่า 2 รายการ ได้แก่ p2p_device_random_mac_addr และ p2p_interface_random_mac_addr

ผู้ผลิตอุปกรณ์ต้องดำเนินการต่อไปนี้เพื่อเปิดใช้ฟีเจอร์นี้

  • ใช้ ISupplicantP2pIface::setMacRandomization API ของ Wi-Fi Supplicant โดยจะอยู่ในตำแหน่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับอินเทอร์เฟซที่ใช้
    • hardware/interface/wifi/supplicant/1.2 สำหรับ HIDL
    • hardware/interface/wifi/supplicant/aidl สำหรับ AIDL
  • ตั้งค่า config_wifi_p2p_mac_randomization_supported เป็น "จริง" ในการซ้อนทับที่กำหนดเองของอุปกรณ์

การตรวจสอบความถูกต้อง

Android มีชุดการทดสอบหน่วย การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) และ การทดสอบ CTS Verifier เพื่อตรวจสอบฟีเจอร์ Wi-Fi Direct นอกจากนี้ คุณยังทดสอบ Wi-Fi Direct ได้โดยใช้ ชุดทดสอบของผู้ให้บริการ (VTS)

การทดสอบหน่วย

ยืนยันแพ็กเกจ Wi-Fi Direct โดยใช้การทดสอบต่อไปนี้

การทดสอบบริการ:

atest com.android.server.wifi.p2p

การทดสอบของผู้จัดการ

atest android.net.wifi.p2p

การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS)

ใช้การทดสอบ CTS เพื่อตรวจสอบฟีเจอร์ Wi-Fi Direct CTS จะตรวจหาเมื่อมีการเปิดใช้ฟีเจอร์ และรวมการทดสอบที่เกี่ยวข้องโดยอัตโนมัติ

หากต้องการเรียกใช้การทดสอบ CTS ให้เรียกใช้คำสั่งต่อไปนี้

% atest android.net.wifi.p2p.cts

การทดสอบโปรแกรมตรวจสอบ CTS

การทดสอบ CTS Verifier จะตรวจสอบลักษณะการทำงานของ Wi-Fi Direct โดยใช้อุปกรณ์ 2 เครื่อง ได้แก่ อุปกรณ์ทดสอบและอุปกรณ์ที่ทราบว่าใช้งานได้ดี หากต้องการเรียกใช้การทดสอบ ให้เปิด CTS Verifier แล้ว ไปที่ส่วนที่มีชื่อว่า "การทดสอบ Wi-Fi Direct"