从 android 访问 wifi 扫描中的信息元素
Access information elements in wifi scan from android
WiFi信标包含几个信息。例如,它们包含网络名称(bssid)、信标时间等。此外,它们还可以包含信息元素 (IE) 形式的供应商扩展。
adroid 中有API 可以访问这些IE 吗?另一种方法是访问原始 wifi 信标作为字节串。
接收信标帧等低级 WiFi 数据包仅限于使用本机 API 的系统应用程序,因此肯定需要根访问权限 才能执行此操作。此外,您可能需要使用 OTG 适配器将外部 WiFi 设备 连接到 USB 端口才能执行此操作。 Kismet Wireless 的工作人员开发了一个带有开源代码的应用程序,该应用程序使用低级 libpcap 代码在 Android 上执行此操作。您可以在此处访问:https://www.kismetwireless.net/android-pcap/
上述工具捕获 WiFi 数据包(包括信标帧)并将它们写入 Android 上的文件。我自己修改了这段代码,将原始数据包作为字节数组发送到我的应用程序,我可以从中解析字节数组中的字节,以从信标帧中提取字段。
是的,这是一项繁重的工作,并且在 root 和对外部 WiFi 设备的需求方面有很多限制。显然这不是问题中提到的内置 Android API 。不幸的是,我相信这是最接近的。对不起。
澄清:这个问题是关于低级 WiFi 数据包信标帧,而不是 beacon
Whosebug 标签可能建议的邻近信标(例如 iBeacon、Eddystone)。
API 用于获取 IE 已添加到 SDK 版本 30 (Android 11):https://developer.android.com/reference/android/net/wifi/ScanResult#getInformationElements()
WiFi信标包含几个信息。例如,它们包含网络名称(bssid)、信标时间等。此外,它们还可以包含信息元素 (IE) 形式的供应商扩展。
adroid 中有API 可以访问这些IE 吗?另一种方法是访问原始 wifi 信标作为字节串。
接收信标帧等低级 WiFi 数据包仅限于使用本机 API 的系统应用程序,因此肯定需要根访问权限 才能执行此操作。此外,您可能需要使用 OTG 适配器将外部 WiFi 设备 连接到 USB 端口才能执行此操作。 Kismet Wireless 的工作人员开发了一个带有开源代码的应用程序,该应用程序使用低级 libpcap 代码在 Android 上执行此操作。您可以在此处访问:https://www.kismetwireless.net/android-pcap/
上述工具捕获 WiFi 数据包(包括信标帧)并将它们写入 Android 上的文件。我自己修改了这段代码,将原始数据包作为字节数组发送到我的应用程序,我可以从中解析字节数组中的字节,以从信标帧中提取字段。
是的,这是一项繁重的工作,并且在 root 和对外部 WiFi 设备的需求方面有很多限制。显然这不是问题中提到的内置 Android API 。不幸的是,我相信这是最接近的。对不起。
澄清:这个问题是关于低级 WiFi 数据包信标帧,而不是 beacon
Whosebug 标签可能建议的邻近信标(例如 iBeacon、Eddystone)。
API 用于获取 IE 已添加到 SDK 版本 30 (Android 11):https://developer.android.com/reference/android/net/wifi/ScanResult#getInformationElements()