我有一个带有 WiFi 模块的芯片,它充当接入点。我想做的是连接到 AP(无法访问互联网),向本地地址( http://192.168.4.1/address )发送 POST 请求并接收来自芯片的响应。我正在编写一个 Android 应用程序,它应该可以做到这一点(而且大多数时候都是如此)。
问题是,我有一个测试设备,它具有此优化功能并检查您连接的 WiFi 网络是否可以访问互联网,如果没有,它会自动使用移动数据。我不希望这样,所以我想“强制”应用程序通过 WiFi 接口(interface)发送它或找到解决方法。
我目前使用 HttpURLConnection
,如果我关闭移动数据,它就会发挥作用。否则它只是等待并在最后触发超时。
我已经搜索了很多关于这个问题的信息,但到目前为止我什么也没找到。
最佳答案
自 Android 5 (API 21) 起,您可以强制连接使用 WiFi,即使它不是默认网络。
一种解决方案是找到相应的网络,例如使用 ConnectivityManager.getAllNetworks()
和 ConnectivityManager.getNetworkInfo()
:
一旦您拥有Network
,您可以:
使用
Network.openConnection()
在此网络上打开连接.使用
ConnectivityManager.setProcessDefaultNetwork
将应用程序绑定(bind)到网络或ConnectivityManager.bindProcessToNetwork()
(API 23+)
参见Connecting your App to a Wi-Fi Device (尤其是路由网络请求)了解更多详细信息。
关于android - 仅通过WiFi接口(interface)发送POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54251538/