1

这是一个奇怪的问题,但我知道这是可能的。

我正在尝试以特定频率广播数据包,并且我希望手机运行应用程序来接收这些数据包。手机不需要连接到任何网络即可执行此操作,只需打开 wifi 即可。广播设备不需要从手机获取任何信息,并且不需要保证每个数据包到手机的传送,就像 UDP 一样。

我从哪说起呢?这对于没有生根的手机是否可行。是否有某种 FCC 规定禁止这样做(在标准 wifi 频谱上)。

我知道这是可能的,因为这正是路由器告诉手机它们可以连接的方式。提前感谢您的任何意见。

4

1 回答 1

0

尽管可能存在类似的技术,但我对 iOS 开发并不熟悉。

无根

但需要 Android 上的粗粒度和/或细粒度位置权限

您可以使用它WifiManager.getScanResults()来扫描无线路由器广播。

结果中包含网络“名称”(SSID) 和路由器 MAC 地址 (BSSID)。您可以广播这些数据包并将数据编码到这些字段中。

也就是说,我希望您的消息很短,因为每个数据包将获得 38 个字节(32 个 SSID 字节+ 6 个 MAC 地址字节)。

是的,有些 MAC 地址是特殊的或无效的,但如果您只是广播而不实际使用它们,它们仍然可以传输数据。

有根

根据无线芯片组和驱动程序的支持,您可以将设备置于“监控模式”,这样您就可以访问原始数据包数据。

主要缺点是没有官方支持。

您可能会从Google 搜索中找到一些 hacky 方法来执行此操作,但我无法找到适用于所有(甚至大多数)设备的通用解决方案。

于 2015-12-08T00:41:57.483 回答