2017-04-11 61 views
0

WiFi信标包含多个信息。例如,它们包含网络名称(bssid),信标时间等。此外,它们还可以包含信息元素(IE)形式的供应商扩展。来自android的wifi扫描访问信息元素

在adroid中是否有API允许您访问这些IE?一种替代方案也可以作为一串字节访问原始wifi信标。

+0

您指的是否有特定的WiFi信标硬件?如果是这样,那么提供链接可能会有所帮助。 – davidgyoung

+0

对于信标,我的意思是在无线信道上发送的帧不是硬件设备。 WiFi信标是包含例如网络名称(SSID)的帧。除此之外,还有其他信息。对我来说,拥有一个API能够提供原始框架就足够了。然后我可以自己解析它。 – Roberto

回答

0

接收像信标帧这样的低级WiFi数据包仅限于使用本地API的系统应用程序,因此根访问当然需要来完成此操作。此外,您可能需要使用OTG适配器连接到USB端口的外部WiFi设备以允许您执行此操作。 Kismet Wireless的开发人员开发了一款应用程序,其中包含开源代码,可在Android上使用低级libpcap代码进行此操作。您可以在此访问:https://www.kismetwireless.net/android-pcap/

上述工具捕获WiFi数据包(包括信标帧)并将它们写入Android上的文件。我自己修改了这个代码,将原始数据包作为字节数组发送到我的应用程序,从中我可以解析字节数组中的字节,从信标帧中提取字段。

是的,这是很多工作,并且在根和对外部WiFi设备的需求方面有很多限制。显然,这不是问题中提到的内置Android API。不幸的是,我相信这是最接近你能来的。抱歉。

说明:这个问题是关于低层WiFi分组信标帧,而不是邻近信标(例如,iBeacon,Eddystone),可能由beacon StackOverflow标签提出。