ฟีเจอร์ Wi-Fi Direct หรือที่เรียกว่า Wi-Fi P2P ช่วยให้อุปกรณ์ที่รองรับค้นพบและเชื่อมต่อกันโดยตรงได้โดยใช้โปรโตคอล Wi-Fi Direct โดยไม่ต้องเข้าถึงอินเทอร์เน็ตหรือเครือข่ายมือถือ ฟีเจอร์นี้สร้างขึ้นจากข้อกำหนด Wi-Fi Direct ของ Wi-Fi Alliance (WFA) ซึ่งช่วยให้อุปกรณ์และแอปที่เชื่อถือซึ่งไม่ได้อยู่ในเครือข่ายสามารถแชร์ข้อมูลที่มีอัตราข้อมูลสูงได้
ตัวอย่างและแหล่งที่มา
หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ต้องใช้อินเทอร์เฟซ HAL ของผู้ให้บริการและ Supplicant ของ Wi-Fi
ใน Android 13 อินเทอร์เฟซ Supplicant จะใช้ AIDL สำหรับคำจำกัดความ HAL ใน Android 14 ขึ้นไป อินเทอร์เฟซ HAL ของผู้ให้บริการจะใช้ AIDL ใน Android 12 และต่ำกว่า ระบบจะกำหนดอินเทอร์เฟซ Supplicant และ HAL ของผู้ให้บริการโดยใช้ HIDL
ต้องใช้แพลตฟอร์ม Wi-Fi HAL ต่อไปนี้เพื่อใช้ฟีเจอร์ 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: ต้องมี Flag ฟีเจอร์
- การรองรับ 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
ผู้ผลิตอุปกรณ์ต้องมีคุณสมบัติต่อไปนี้จึงจะเปิดใช้ฟีเจอร์นี้ได้
- ใช้ Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
API ไฟล์นี้อยู่ในตำแหน่งต่อไปนี้โดยขึ้นอยู่กับอินเทอร์เฟซที่ใช้hardware/interface/wifi/supplicant/1.2
สำหรับ HIDLhardware/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"