ฟีเจอร์ Wi-Fi Aware ที่เพิ่มเข้ามาใน Android 8.0 ช่วยให้อุปกรณ์ที่รองรับค้นพบ เชื่อมต่อ และวัดระยะ (เพิ่มเข้ามาใน Android 9) กับอุปกรณ์อื่นๆ ได้โดยตรง โดยใช้โปรโตคอล Wi-Fi Aware โดยไม่ต้องเข้าถึงอินเทอร์เน็ตหรือเครือข่ายมือถือ ฟีเจอร์นี้ สร้างขึ้นตามข้อกำหนด Wi-Fi Aware ของ Wi-Fi Alliance (WFA) (เวอร์ชัน 2.0, 3.0, 3.1 และ 4.0) ซึ่งช่วยให้การแชร์ข้อมูลที่มีปริมาณงานสูง ระหว่างอุปกรณ์และแอปที่เชื่อถือได้ซึ่งไม่ได้เชื่อมต่อเครือข่ายเป็นไปได้ง่ายขึ้น
ตัวอย่างและแหล่งที่มา
หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ควรติดตั้งใช้งาน Wi-Fi Vendor HAL ใน Android 14 ขึ้นไป อินเทอร์เฟซ Vendor HAL จะกำหนดโดยใช้ AIDL สำหรับ Android 13 และต่ำกว่า อินเทอร์เฟซ Vendor HAL จะกำหนดโดยใช้ HIDL
ทำตามอินเทอร์เฟซ Wi-Fi เพื่อใช้ฟีเจอร์ Wi-Fi Aware โดยอินเทอร์เฟซจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้ ขึ้นอยู่กับอินเทอร์เฟซที่ติดตั้งใช้งาน
- AIDL:
hardware/interfaces/wifi/aidl - HIDL:
hardware/interfaces/wifi/1.2ขึ้นไป
คุณสามารถดู Wi-Fi HAL เดิมเพื่อดูความสัมพันธ์กับ
อินเทอร์เฟซ AIDL และ HIDL ได้ที่
hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/wifi_nan.h
การใช้งาน
ผู้ผลิตอุปกรณ์ต้องให้การรองรับทั้งเฟรมเวิร์กและ HAL/เฟิร์มแวร์ ดังนี้
- เฟรมเวิร์ก:
- โค้ดโครงการโอเพนซอร์ส Android (AOSP)
- เปิดใช้ Aware: ต้องใช้ทั้งแฟล็กฟีเจอร์และแฟล็กบิลด์
- การรองรับ HAL ของ Wi-Fi Aware (NAN) (ซึ่งหมายถึงการรองรับเฟิร์มแวร์)
หากต้องการติดตั้งใช้งานฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ต้องติดตั้งใช้งานอินเทอร์เฟซ Wi-Fi และเปิดใช้แฟล็กฟีเจอร์ 2 รายการ ดังนี้
ใน
BoardConfig.mkหรือBoardConfig-common.mkที่อยู่ในdevice/<oem>/<device>ให้เพิ่มแฟล็กต่อไปนี้WIFI_HIDL_FEATURE_AWARE := trueใน
device.mkที่อยู่ในdevice/<oem>/<device>ให้แก้ไขตัวแปรสภาพแวดล้อมPRODUCT_COPY_FILESเพื่อรวมการรองรับฟีเจอร์ Wi-Fi Aware ดังนี้PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
Wi-Fi Aware มีการวัดระยะกับอุปกรณ์เพียร์โดยใช้โปรโตคอล IEEE 802.11mc ซึ่งเรียกอีกอย่างว่า Round Trip Time (RTT) ฟีเจอร์ย่อยของ Wi-Fi Aware นี้จะทำงานได้ก็ต่อเมื่ออุปกรณ์รองรับฟีเจอร์ Wi-Fi RTT นั่นคือ อุปกรณ์ต้องรองรับทั้ง Wi-Fi Aware และ Wi-Fi RTT ดูรายละเอียดเพิ่มเติมได้ที่ Wi-Fi RTT
นอกเหนือจากนี้ ทุกสิ่งที่จำเป็นสำหรับฟีเจอร์นี้จะรวมอยู่ใน AOSP
ระบบจะละเว้นแฟล็ก WIFI_HIDL_FEATURE_AWARE หากมีการระบุแฟล็ก WIFI_HAL_INTERFACE_COMBINATIONS ดูข้อมูลเพิ่มเติมได้ที่
การทำงานพร้อมกันของอินเทอร์เฟซ Wi-Fi หลายรายการ
การสุ่ม MAC
Android กำหนดให้ที่อยู่ MAC ของอินเทอร์เฟซการค้นพบ (NMI) และข้อมูล (NDP) ของ Wi-Fi Aware เป็นแบบสุ่มและไม่เหมือนกับที่อยู่ MAC จริงของอุปกรณ์ ที่อยู่ MAC ต้องมีลักษณะดังนี้
- เป็นแบบสุ่มทุกครั้งที่เปิดใช้หรือเปิดใช้ Wi-Fi Aware อีกครั้ง
เมื่อเปิดใช้ Wi-Fi Aware ที่อยู่ MAC ต้องเป็นแบบสุ่มตามช่วงเวลาปกติที่กำหนดค่าโดยพารามิเตอร์
NanConfigRequest.macAddressRandomizationIntervalSecเฟรมเวิร์กจะกำหนดค่านี้เป็น 30 นาทีโดยค่าเริ่มต้น
ระงับและดำเนินการต่อ
ใน Android 14 ขึ้นไป Wi-Fi Aware รองรับความสามารถของแอปที่มีสิทธิ์ในการระงับและดำเนินการต่อเซสชันการค้นหาที่ใช้งานอยู่ (รวมถึงเส้นทางข้อมูลทั้งหมดที่เชื่อมโยงกับเซสชันเหล่านั้น) การรองรับความสามารถนี้ช่วยให้อุปกรณ์ดำเนินการต่อเซสชันการค้นหาได้เร็วขึ้นและใช้พลังงานน้อยลงเนื่องจากสามารถระงับเซสชันการค้นหาได้
หากอุปกรณ์รองรับความสามารถในการระงับและดำเนินการต่อนี้ เฟิร์มแวร์จะระงับเซสชัน Wi-Fi Aware เมื่อแอปที่มีสิทธิ์ระงับเซสชันการค้นหา เมื่อเซสชันการค้นหาอยู่ในสถานะระงับ อุปกรณ์จะไม่ส่งหรือรับเฟรมสำหรับเซสชันนั้น รวมถึง NDP ที่ใช้งานอยู่ในเซสชันนั้น หากเซสชันการค้นหาทั้งหมดถูกระงับ อุปกรณ์จะไม่ส่งหรือรับเฟรม Wi-Fi Aware
เมื่อแอปที่มีสิทธิ์ดำเนินการต่อเซสชันการค้นหาที่ถูกระงับ เฟรมเวิร์กจะเปลี่ยนเซสชันกลับไปเป็นสถานะก่อนหน้า รวมถึงเซสชัน NDP ที่เชื่อมโยงทั้งหมด การดำเนินการต่อเซสชันการค้นหาที่ถูกระงับจะเร็วกว่าการเปิดใช้ Wi-Fi Aware และสร้างเซสชันการค้นหาใหม่
หากต้องการรองรับความสามารถในการระงับและดำเนินการต่อเซสชันการค้นหา ผู้ผลิตอุปกรณ์ต้องให้การรองรับ HAL และเฟิร์มแวร์ ดูรายละเอียดได้ที่
IWifiNanIface.java
ผู้ผลิตอุปกรณ์สามารถใช้การสื่อสารแบบ Out-of-Band (เช่น BLE) เพื่อซิงค์การระงับและการดำเนินการต่อในอุปกรณ์หลายเครื่อง
การตรวจสอบ
Android มีชุดการทดสอบหน่วย การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) และ การทดสอบ CTS Verifier เพื่อตรวจสอบฟีเจอร์ Wi-Fi Aware นอกจากนี้ คุณยังทดสอบ Wi-Fi Aware ได้โดยใช้ Vendor Test Suite (VTS)
การทดสอบหน่วย
ระบบจะดำเนินการทดสอบแพ็กเกจ Wi-Fi Aware โดยใช้สิ่งต่อไปนี้
การทดสอบบริการ
atest com.android.server.wifi.awareการทดสอบผู้จัดการ
atest android.net.wifi.awareการทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS)
ใช้การทดสอบ CTS เพื่อตรวจสอบฟีเจอร์ Wi-Fi Aware CTS จะตรวจพบเมื่อมีการเปิดใช้ฟีเจอร์และรวมการทดสอบที่เกี่ยวข้องโดยอัตโนมัติ
คุณสามารถทริกเกอร์การทดสอบ CTS ได้โดยใช้สิ่งต่อไปนี้
atest SingleDeviceTestการทดสอบ CTS Verifier
การทดสอบ CTS Verifier จะตรวจสอบลักษณะการทำงานของ Wi-Fi Aware โดยใช้อุปกรณ์ 2 เครื่อง ได้แก่ อุปกรณ์ทดสอบและอุปกรณ์ ที่ทราบว่าใช้งานได้ดี หากต้องการเรียกใช้การทดสอบ ให้เปิด CTS Verifier แล้วไปที่ส่วนที่มีชื่อว่าการทดสอบ Wi-Fi Aware