Wi-Fi Aware

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

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

หากต้องการใช้ฟีเจอร์นี้ ผู้ผลิตอุปกรณ์ควรใช้ HAL ของผู้ให้บริการ Wi-Fi ใน 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/+/main/include/hardware_legacy/wifi_nan.h

การใช้งาน

ผู้ผลิตอุปกรณ์ต้องรองรับทั้งเฟรมเวิร์กและ HAL/เฟิร์มแวร์ ดังนี้

  • เฟรมเวิร์ก:
    • โค้ด AOSP
    • เปิดใช้ Aware: ต้องใช้ทั้งแฟล็กฟีเจอร์และแฟล็กบิลด์
  • การรองรับ Wi-Fi Aware (NAN) HAL (ซึ่งหมายความว่ารองรับเฟิร์มแวร์)

ผู้ผลิตอุปกรณ์จะใช้ฟีเจอร์นี้เพื่อใช้ฟีเจอร์นี้ และเปิดใช้แฟล็กฟีเจอร์ 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 นี้คือ แบบมีเงื่อนไขในอุปกรณ์ที่รองรับฟีเจอร์ RTT ของ Wi-Fi กล่าวคือ อุปกรณ์ให้รองรับทั้ง Wi-Fi Aware และ RTT ของ Wi-Fi ดูรายละเอียดเพิ่มเติมได้ที่ 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 และการสร้างเซสชันการค้นพบใหม่

เพื่อรองรับความสามารถในการระงับและดำเนินเซสชันการค้นพบต่อ อุปกรณ์ จะต้องให้การรองรับ HAL และเฟิร์มแวร์ โปรดดูรายละเอียดที่หัวข้อ IWifiNanIface.java

ผู้ผลิตอุปกรณ์สามารถใช้การสื่อสารนอกแบนด์ (เช่น BLE) เพื่อซิงค์การหยุดชั่วคราวและเล่นต่อในอุปกรณ์หลายเครื่อง

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

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

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

การทดสอบแพ็กเกจ 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"