ฟีเจอร์ Wi-Fi Aware ที่เพิ่มเข้ามาใน Android 8.0 ช่วยให้อุปกรณ์ที่รองรับค้นหา เชื่อมต่อ และวัดระยะ (เพิ่มเข้ามาใน Android 9) กับอุปกรณ์อื่นๆ ได้โดยตรง โดยใช้โปรโตคอล Wi-Fi Aware โดยไม่ต้องเข้าถึงอินเทอร์เน็ตหรือเครือข่ายมือถือ ฟีเจอร์นี้สร้างขึ้นตามWi-Fi Alliance (WFA) ข้อกำหนด Wi-Fi Aware (เวอร์ชัน 2.0, 3.0, 3.1 และ 4.0) ซึ่งช่วยให้แชร์ข้อมูลที่มีปริมาณงานสูงได้ง่ายๆ ระหว่างอุปกรณ์และแอปที่เชื่อถือได้ซึ่งอยู่นอกเครือข่าย
ตัวอย่างและแหล่งที่มา
หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ควรใช้ Wi-Fi Vendor HAL ใน Android 14 ขึ้นไป อินเทอร์เฟซ HAL ของผู้ให้บริการจะกำหนดโดยใช้ AIDL สำหรับ Android 13 และต่ำกว่า อินเทอร์เฟซ HAL ของผู้ให้บริการจะกำหนดโดยใช้ HIDL
ทำตามอินเทอร์เฟซ Wi-Fi เพื่อใช้ฟีเจอร์ Wi-Fi Aware ซึ่งจะขึ้นอยู่กับอินเทอร์เฟซที่ติดตั้งใช้งาน ดังนี้
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
ขึ้นไป
คุณดู HAL ของ Wi-Fi รุ่นเดิมเพื่อดูความสัมพันธ์กับอินเทอร์เฟซ AIDL และ HIDL ได้ที่
hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/wifi_nan.h
การใช้งาน
ผู้ผลิตอุปกรณ์ต้องให้การรองรับทั้งเฟรมเวิร์กและ HAL/เฟิร์มแวร์
- เฟรมเวิร์ก
- โค้ด AOSP
- เปิดใช้ Aware: ต้องมีทั้งฟีเจอร์แฟล็กและบิลด์แฟล็ก
- การรองรับ HAL ของ Wi-Fi Aware (NAN) (ซึ่งหมายถึงการรองรับเฟิร์มแวร์)
หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์จะใช้ Wi-Fi Interface และเปิดใช้ฟีเจอร์แฟล็ก 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 หรือที่เรียกว่าเวลาไปกลับ (RTT) ฟีเจอร์ย่อยของ Wi-Fi Aware นี้จะ ขึ้นอยู่กับว่าอุปกรณ์รองรับฟีเจอร์ Wi-Fi RTT หรือไม่ นั่นคือ อุปกรณ์ต้องรองรับทั้ง Wi-Fi Aware และ Wi-Fi RTT ดูรายละเอียดเพิ่มเติมได้ที่ RTT ของ Wi-Fi
มิเช่นนั้น ทุกอย่างที่จำเป็นสำหรับฟีเจอร์นี้จะรวมอยู่ใน AOSP
ระบบจะไม่สนใจแฟล็ก WIFI_HIDL_FEATURE_AWARE
หากมีการระบุแฟล็ก WIFI_HAL_INTERFACE_COMBINATIONS
ดูข้อมูลเพิ่มเติมได้ที่การทำงานพร้อมกันแบบหลายอินเทอร์เฟซของ Wi-Fi
การสุ่ม MAC
Android กำหนดให้ที่อยู่ MAC ของการค้นพบ Wi-Fi Aware (NMI) และอินเทอร์เฟซข้อมูล (NDP) ต้องเป็นแบบสุ่มและไม่เหมือนกับที่อยู่ 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
ผู้ผลิตอุปกรณ์สามารถใช้การสื่อสารนอกแบนด์ (เช่น BLE) เพื่อ ซิงค์การระงับและกลับมาทำงานต่อในอุปกรณ์หลายเครื่อง
การตรวจสอบความถูกต้อง
Android มีชุดการทดสอบหน่วย การทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) และ การทดสอบ CTS Verifier เพื่อตรวจสอบฟีเจอร์ Wi-Fi Aware นอกจากนี้ คุณยังทดสอบ Wi-Fi Aware ได้โดยใช้ชุดทดสอบของผู้ให้บริการ (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
การทดสอบ CTS Verifier จะตรวจสอบลักษณะการทำงานของ Wi-Fi Aware โดยใช้อุปกรณ์ 2 เครื่อง ได้แก่ อุปกรณ์ทดสอบและอุปกรณ์ที่ทราบว่าใช้งานได้ดี หากต้องการเรียกใช้การทดสอบ ให้เปิด CTS Verifier แล้ว ไปที่ส่วนที่มีชื่อว่า "การทดสอบ Wi-Fi Aware"