【发布时间】:2020-12-31 13:05:07
【问题描述】:
我正在开发一个应用程序,它使用 wifi 在具有我的应用程序的同一网络中的所有手机之间广播 UDP 消息。
我设法从许多具有外部 AP(即我的路由器)的手机发送/接收数据包。
但鉴于没有 AP,我希望用户能够使用他们手机的 Wifi 热点功能,以便他们仍然可以使用我的应用程序。因此,其中一部手机将成为 wifi 热点,而其他所有手机都将连接到该热点。
我要求用户自己连接到 wifi。到外部 AP 或到所述热点。然后当我的应用程序启动时,它会检查手机是否连接到 wifi 网络,调用 WifiManager.isWifiEnabled() 和 NetworkInfo.isConnected()。
问题是,如果我在使用热点的手机中调用这些函数,函数 isConnected() 将返回 false。而且我无法使用 WifiManager.getDhcpInfo() 获取广播地址。 连接到热点的其他手机可以正常工作。但是热点手机无法发送任何广播,因为WifiManager被禁用了。
所以,我的问题是“有什么方法可以检查手机当前是否是 wifi 热点?如果是,有什么方法可以获取它的广播地址吗?”
【问题讨论】:
-
你应该可以通过解析shell命令
ip link和ip route的结果得到你需要的东西
标签: android udp wifi broadcast