Wi-Fi Aware

คุณสมบัติ 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) ช่วยให้สามารถแชร์ข้อมูลที่มีปริมาณงานสูงระหว่างอุปกรณ์และแอปที่เชื่อถือได้ซึ่งอยู่นอกเครือข่ายได้อย่างง่ายดาย

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

หากต้องการใช้คุณสมบัตินี้ ผู้ผลิตอุปกรณ์ควรใช้ HAL ของผู้จำหน่าย Wi-Fi ใน Android 14 ขึ้นไป อินเทอร์เฟซ Vendor HAL ถูกกำหนดโดยใช้ AIDL สำหรับ Android 13 และต่ำกว่า อินเทอร์เฟซ 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/+/main/include/hardware_legacy/wifi_nan.h

การนำไปปฏิบัติ

ผู้ผลิตอุปกรณ์จำเป็นต้องจัดให้มีทั้งการสนับสนุนเฟรมเวิร์กและ HAL/เฟิร์มแวร์:

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

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

การทดสอบบูรณาการ (ACTS)

ชุดทดสอบ acts/sl4a ที่อธิบายไว้ใน tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md มีการทดสอบการทำงาน ประสิทธิภาพ และความเครียด

การทดสอบชุดทดสอบความเข้ากันได้ (CTS)

ใช้การทดสอบ CTS เพื่อตรวจสอบคุณสมบัติ Wi-Fi Aware CTS ตรวจพบเมื่อเปิดใช้งานคุณสมบัติและรวมการทดสอบที่เกี่ยวข้องโดยอัตโนมัติ

การทดสอบ CTS สามารถเรียกใช้ได้โดยใช้:

atest SingleDeviceTest

การทดสอบ CTS Verifier

การทดสอบ CTS Verifier ตรวจสอบพฤติกรรม Wi-Fi Aware โดยใช้อุปกรณ์สองเครื่อง: อุปกรณ์ทดสอบและอุปกรณ์ ที่ทราบว่าใช้งานได้ดี หากต้องการรันการทดสอบ ให้เปิด CTS Verifier และไปที่หัวข้อ Wi-Fi Aware Tests