Wi-Fi Direct

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

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

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

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

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

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

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

Android มีชุดการทดสอบ 1 หน่วย การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) และ CTS Verifier จะทดสอบเพื่อตรวจสอบ Wi-Fi ฟีเจอร์โดยตรง คุณยังสามารถทดสอบ Wi-Fi Direct ได้ด้วย Vendor Test Suite (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 Verifier

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