在没有连接的情况下将数据包广播到手机

时间:2012-05-25 15:45:17

标签: android ios networking wifi broadcasting

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

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

我从哪里开始?对于没有生根的手机,这是否可行?是否有某种FCC规则禁止这样做(通过标准的wifi频谱)。

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

1 个答案:

答案 0 :(得分:0)

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

没有root

但需要在Android上进行粗略和/或细粒度的位置许可

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

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

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

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

使用root

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

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

你可能会从Google search找到一些hacky方法来做到这一点,但我找不到任何适用于所有(甚至大多数)设备的通用解决方案。