การรับรู้ Wi-Fi

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

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

ผู้ผลิตอุปกรณ์ควรติดตั้งใช้งาน 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 อย่างไร: ฮาร์ดแวร์/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h

การใช้งาน

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

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

ผู้ผลิตอุปกรณ์จะใช้อินเทอร์เฟซ Wi-Fi และเปิดใช้แฟล็กฟีเจอร์ 2 รายการเพื่อใช้ฟีเจอร์นี้

  • ใน BoardConfig.mk หรือ BoardConfig-common.mk ที่อยู่ใน device/<oem>/<device> ให้เพิ่ม Flag ต่อไปนี้

    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

ระบบจะละเว้น Flag WIFI_HIDL_FEATURE_AWARE หากมีการระบุ Flag 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 เพื่อตรวจสอบฟีเจอร์ Wi-Fi Aware นอกจากนี้ คุณยังทดสอบ Wi-Fi Aware ได้โดยใช้ชุดทดสอบของผู้ให้บริการ (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 จะตรวจสอบลักษณะการทํางานของ Wi-Fi Aware โดยใช้อุปกรณ์ 2 เครื่อง ได้แก่ อุปกรณ์ทดสอบและอุปกรณ์ที่ทราบแล้วว่าใช้งานได้ หากต้องการทำการทดสอบ ให้เปิด CTS Verifier แล้วไปที่ส่วน "การทดสอบ Wi-Fi Aware"