WLAN 感知

Android 8.1 (O MR1) 版本中的 WLAN 感知功能支持多个设备直接通过 WLAN 进行互连(无需连接到互联网或移动网络)。此功能是基于 WLAN 联盟 WLAN 感知规范(2.0 版)构建的,它支持在断开网络的情况下,在可信设备与应用之间轻松共享高吞吐量数据。

示例和源代码

要使用此功能,设备制造商应采用在 Android 开源项目 (AOSP) 中提供的 WLAN 硬件接口设计语言 (HIDL)。在 Android 8.0 (O) 版本中,HIDL 取代了之前使用的硬件抽象层 (HAL) 结构,以便通过指定收集到接口和软件包的类型和方法调用来简化实现流程。

借助 WLAN HIDL 使用 WLAN 感知功能:hardware/interfaces/wifi/1.0。WLAN 感知 HAL 表面非常大;hardware/interfaces/wifi/1.0/README-NAN.md 文件描述了当前使用的子集。

您可以参考旧版 WLAN HAL 来了解它与新 HIDL 接口之间的关系:hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h

实现

设备制造商需要提供框架和 HAL/固件支持:

  • 框架:
    • AOSP 代码
    • 启用感知功能:需要功能标记和 HIDL 编译标记
  • WLAN 感知 (NAN) HAL 支持(意味着固件支持)

为实现此功能,设备制造商需采用 WLAN HIDL,另外还要启用两个功能标记:

BoardConfig.mk 中,添加此标记可指示 WLAN HIDL 包含 WLAN 感知功能:WIFI_HIDL_FEATURE_AWARE := true

device.mk 中,修改 PRODUCT_COPY_FILES 环境变量以提供对 WLAN 感知功能的支持: PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:system/etc/permissions/android.hardware.wifi.aware.xml

否则,实现此功能所需的所有内容都会包含在 AOSP 中。

验证

这项功能有适用的 Android 兼容性测试套件 (CTS) 测试。CTS 会检测何时启用了这项功能,并会自动包含相关测试。

您也可以使用供应商测试套件 (VTS) acts/sl4a(用于执行扩展程序集成测试的测试套件)来测试此功能。

acts/sl4a 测试套件(在 tools/test/connectivity/acts/tests/google/wifi/aware/README.md 中有相应说明)提供了功能测试、性能测试和压力测试。