WLAN 感知

通过 Android 8.0 中新增的 WLAN 感知功能,支持设备可以直接使用 WLAN 感知协议发现其他设备、与其他设备进行互连,以及将覆盖范围扩展到其他设备(Android 9 中新增的功能),而无需连接到互联网或移动网络。此功能是基于 WLAN 联盟 (WFA) WLAN 感知规范(2.0 版)构建的,它支持在断开网络的情况下,在可信设备与应用之间轻松共享高吞吐量数据。

示例和来源

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

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

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

实现

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

  • 框架:

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

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

  • 在位于 device/<oem>/<device> 的 BoardConfig.mk 或 BoardConfig-common.mk 中,添加以下标记:

    WIFI_HIDL_FEATURE_AWARE := true
     
  • 在位于 device/<oem>/<device> 的 device.mk 中,修改 PRODUCT_COPY_FILES 环境变量,以便纳入对 WLAN 感知功能的支持:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
     

WLAN 感知功能包括使用 IEEE 802.11mc 协议(又称为往返时间 (RTT))将覆盖范围扩展到对等设备。WLAN 感知的这一子功能取决于支持 WLAN RTT 功能的设备,即它要求设备支持 WLAN 感知和 WLAN RTT。有关详情,请参阅 WLAN RTT

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

随机分配 MAC 地址

Android 要求随机分配 WLAN 感知发现 (NMI) 和数据接口 (NDP) 的 MAC 地址,而且随机分配的 MAC 地址不应与设备的真实 MAC 地址相同。MAC 地址必须满足以下条件:

  • 每当启用或重新启用 WLAN 感知时进行随机分配。
  • WLAN 感知功能启用后,必须按照由 NanConfigRequest.macAddressRandomizationIntervalSec HIDL 参数配置的有规律的间隔随机分配 MAC 地址。框架将时间间隔默认配置为 30 分钟。

    注意:根据 WLAN 感知规范,配置 NDP 后,随机分配可能会被暂停。

验证

Android 提供了一组单元测试、集成测试 (ACTS)、兼容性测试套件 (CTS) 测试和 CTS 验证程序测试,以验证 WLAN 感知功能。您也可以使用供应商测试套件 (VTS) 来测试 WLAN 感知功能。

单元测试

WLAN 感知软件包测试:

服务测试:

% ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh -e package
com.android.server.wifi.aware
 

Manager 测试:

% ./frameworks/base/wifi/tests/runtests.sh -e package android.net.wifi.aware
 

集成测试 (ACTS)

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

兼容性测试套件 (CTS)

使用 CTS 测试来验证 WLAN 感知功能。CTS 会检测何时启用了这项功能,并会自动包含相关测试。

可以使用以下方法触发 CTS 测试:

% atest SingleDeviceTest
 

CTS 验证程序测试

CTS 验证程序测试使用以下两种设备验证 WLAN 感知行为:测试设备和已知良好的设备。要运行测试,请打开 CTS 验证程序并转到“WLAN 感知测试”部分。

WLAN 感知的更多相关文章

  1. WLAN RTT (IEEE 802.11mc)

    WLAN RTT (IEEE 802.11mc) Android 9 中的 WLAN 往返时间 (RTT) 功能允许设备测量与其他支持设备的距离:无论它们是接入点 (AP) 还是 WLAN 感知对等设 ...

  2. WLAN HAL

      WLAN HAL WLAN 框架具有三个 WLAN HAL 表面,分别由三个不同的 HIDL 软件包表示: 供应商 HAL:Android 专用命令的 HAL 表面.HIDL 文件位于 hardw ...

  3. Android 8.0 功能和 API

    Android 8.0 为用户和开发者引入多种新功能.本文重点介绍面向开发者的新功能. 用户体验 通知 在 Android 8.0 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的 ...

  4. 版本适配 sdk version MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. WIFI 概览

      概览 Android 提供默认 Android 框架实现,其中包括对各种 WLAN 协议和模式的支持,这些协议和模式包括: WLAN 基础架构 (STA) 网络共享模式或仅限本地模式下的 WLAN ...

  6. WLAN 无线网络 03 - RF 基础

    射频(Radio frequency),又称无线电频率.无线射频.高周波,常被用来当成无线电的同义词,为在3 kHz至300 GHz这个范围内的震荡频率,这个频率相当于无线电波的频率,以及携带着无线电 ...

  7. 适配各种Windows分辨率,为DPI添加感知,当在高DPI时,禁用WINFORM缩放等。

    因为现在高分屏越来越多,很多windows设备必须设置高DPI,这样很容易导致WINFORM整体错位,因此我们需要自己适配.禁止缩放 在程序配置清单 mainfest中添加如下. <assemb ...

  8. [读码][js,css3]能感知鼠标方向的图片遮罩效果

    效果图: 无意间看到过去流行的一个效果:[能感知鼠标方向的图片遮罩效果]近来不忙,就仔细的看了一看看到后来发现,网上有好多版本,谁是原著者似乎已经无法考证.读码就要读比较全面的,读像是原著的代码.代码 ...

  9. ModernUI教程:独立显示器DPI感知

             独立显示器DPI感知,是在Windows 8.1中新增的特性,这个特性针对拥有多个显示器同时各个显示器的DPI设定又不同的人.对这个新特性做了优化支持的软件能够在一个高DPI的显示器 ...

随机推荐

  1. node17

    一.复习 cookie是在res中设置,req中读取的.第一次的访问没有cookie. cookie的存储大小有限,kv对.对用户可见,用户可以禁用.清除Cookie.可以被篡改. cookie用来制 ...

  2. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  3. Appserv 2.5.10 升级PHP from version 5.2 to 5.3

    解决方案查看 该文章:http://blog.csdn.net/dull_boy2/article/details/43927363

  4. 51nod 1448 二染色问题 (逆向考虑)

    题目: 注意,这题不是把一块区域的黑翻成白.白翻成黑. 是把一块区域全部翻成白或者翻成黑. 初始为全白,看能否翻出题中的情况. 我们假设翻转若干次能得到图中的形状,那么我们找出最后一次的翻转,即全W或 ...

  5. 51nod 1307 绳子与重物 (标记父节点更新即可)

    1307 绳子与重物 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有N条绳子编号 0 至 N - 1,每条绳子后面栓了一个重物重量为Wi,绳子的最大负重为Ci. ...

  6. QNX多线程同步之Barrier(屏障)

    之前和大家介绍过QNX上的线程同步方法metux和semophore,通过这两种方法可以对一个或者几个资源进行加锁,避免资源使用上的冲突.在另一种情况下,某个线程需要在其它线程完成工作后才继续执行,这 ...

  7. 基本数据类型(dict)

    1.定义 dict => {"key":'value',"a":1} 字典是无序的,字典是可变的 字典的键 => 可哈希(不可变),唯一 字典的值 ...

  8. linux上使用chrome自动化测试(无界面)

    selenium自动化测试主要是用于有图形界面的系统上,对于无图形界面的情况可以通过以下方法来实现 服务器信息 [root@spider01 ~]# hostnamectl Static hostna ...

  9. 【BZOJ4016】【FJOI2014】最短路径树问题

    题意: Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点分别走一次并返回. 往某一个点走时,选择总长度最短的路径走.若有多条长度最短的路径,则选择经过的顶点序列 ...

  10. LayUI加载js无效问题

    在部署系统的时候,本地调试一切正常,layer.js均能正常加载.然而部署到服务器之后,经常性的出现layer.js无法加载问题.导致页面弹框无法使用. 一开始以为是Google浏览器问题,因为刚刚更 ...