Wi-Fi Direct

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

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

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

ใน Android 13 อินเทอร์เฟซ Susubscriptions จะใช้ AIDL สําหรับคําจํากัดความ HAL ใน Android 14 ขึ้นไป อินเทอร์เฟซ HAL ของผู้ให้บริการจะใช้ AIDL ใน Android 12 และต่ำกว่า ระบบจะกำหนดอินเทอร์เฟซ Supplicant และ 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) (ซึ่งหมายความว่ารองรับเฟิร์มแวร์)

หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์จะต้องใช้อินเทอร์เฟซ Wi-Fi HIDL หรือ AIDL และเปิดใช้ Flag ฟีเจอร์สำหรับ 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_suดีๆ" และควบคุมด้วยการกำหนดค่า 2 รายการ ได้แก่ p2p_device_random_mac_addr และ p2p_interface_random_mac_addr

หากต้องการเปิดใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์จะต้องมีคุณสมบัติดังนี้

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

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

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

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

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