Google的新Wi-Fi Aware功能(也称为邻居感知网络(NAN))使运行在Android 8.0(API级别26)及更高版本上的设备能够检测并直接相互连接,而无需任何辅助连接(例如蓝牙)。

Wi-Fi Aware通过将给定位置中的现有设备组合在一起或为最先进入位置的设备建立新的组来连接设备。Wi-Fi Aware系统服务管理此功能,而应用程序本身无法控制分组行为。相反,应用程序使用Wi-Fi Aware API与Wi-Fi Aware系统服务进行通信,该服务管理设备的Wi-Fi Aware硬件。
Wi-Fi Aware API使应用程序可以发现其他设备,并与这些设备建立必要的网络连接。当单个设备发布至少一个可发现服务时,发现过程开始。届时,一旦另一台设备订阅了第一台设备并进入发布者的Wi-Fi范围,订阅者就会收到有关已找到匹配发布者的更新。
一旦订阅者标识了发布者,订阅者就可以发送简短消息或启动与发现的设备的网络连接。出于覆盖目的,设备既可以是发布者,也可以是订阅者。
然后,只要两个设备能够相互识别,它们就可以在没有接入点的情况下生成双向Wi-Fi感知网络连接。Wi-Fi Aware网络连接具有比蓝牙更长距离更好的连接优势。因此,此连接非常适合在用户之间共享大量数据的应用程序,例如照片共享应用程序。
为了访问Wi-Fi Aware发现和网络,用户可以在其应用程序清单中请求以下权限:访问WiFi状态,更改WiFi状态,访问精确位置,更改网络状态,Internet。接下来,他们可以使用PackManager API确认其设备是否支持Wi-Fi Aware。
第三,用户可以检查Wi-Fi Aware当前是否可用。毕竟,虽然设备上可能存在Wi-Fi Aware,但是如果禁用了“位置”或Wi-Fi,则设备将无法访问该功能。
也就是说,如果激活了Wi-Fi Direct,SoftAP或网络共享,则某些设备可能不支持Wi-Fi Aware,具体取决于它们的固件和硬件设置。为此,用户应注意Wi-Fi Aware可用性随时可能发生变化。应用程序应注册BroadcastReceiver以接收“动作Wi-Fi感知状态已更改”并通知任何可用性更改。应用收到此通知后,所有现有会话都将被丢弃。