这是一个奇怪的问题,但我知道这是可能的。
我正在尝试在特定频率上广播数据包,我希望运行应用程序的手机能够接收这些数据包。手机不需要连接任何网络即可完成此操作,只需打开wifi即可。广播设备不需要从电话中获取任何信息,并且不需要保证将每个数据包传送到电话,就像UDP一样。
我从哪里开始?对于没有生根的手机,这是否可行?是否有某种FCC规则禁止这样做(通过标准的wifi频谱)。
我知道这是可能的,因为它正是路由器告诉手机可以连接的方式。提前感谢任何意见。
答案 0 :(得分:0)
虽然可能存在类似的技术,但我并不熟悉iOS开发。
没有root
但需要在Android上进行粗略和/或细粒度的位置许可
您可以使用WifiManager.getScanResults()
扫描无线路由器广播。
网络“名称”(SSID)和路由器MAC地址(BSSID)包含在结果中。您可以广播这些数据包并将数据编码到这些字段中。
那就是说,我希望您的消息很短,因为每个数据包将获得38个字节(32 SSID bytes + 6个MAC地址字节)。
是的,某些MAC地址是特殊的或无效的,但如果您只是广播但实际上没有使用它们,它们仍然可以传输数据。
使用root
根据无线芯片组和驱动程序支持,您可以将设备置于“监控模式”,这样您就可以访问原始数据包数据。
主要缺点是没有官方支持。
你可能会从Google search找到一些hacky方法来做到这一点,但我找不到任何适用于所有(甚至大多数)设备的通用解决方案。