已解决-一个用于获取(wifiDirect)ESP8266内容的应用

时间:2019-05-29 18:03:56

标签: android arduino esp8266

我无法运行我的android应用。

我的清单上有什么? =>我有两个esp8266。其中之一是创建软件访问点的“独立服务器”。另一个是连接到它并从中读取内容的客户端。到目前为止,一切都很好。 现在,我也想将一个Android应用程序作为客户端。我正在通过WifiManager连接,并希望通过HttpURLConnection获取内容。

Android连接有效。阅读内容仅需用户采取额外的措施。那不是我想要的。

我对没有应用的WiFi连接有疑问:

  1. 我的ESP创建一个软件访问点

  2. 如果我通过Android进行连接,手机会告诉我“没有互联网 连接”。没关系,我不需要。如果我要呼叫IP ESP我会超时。我已经用谷歌搜索了这个问题,我必须 点击从Android弹出的窗口,然后告诉系统没问题 并且我将忽略连接问题。然后我会得到 通过Chrome浏览内容。我永远不会让我的应用程序的用户这样做!

  3. 如果我使用DNS服务器和软件访问点来刷新我的ESP, 获取一个强制门户并将我的Android设备与此AP连接 电话显示了一个弹出窗口,向此wifi信号注册。如果我 单击它,我将立即获得我想要获得的内容(内容 专属门户网站/我的回答的内容)。如果我正在使用 chrome并导航到ESP的IP或其他主机(因为我在 使用DNS服务器,我将所有内容重定向到同一站点 在我的ESP上),我会超时。否则我的移动数据会给我一些 现有主机的输出。那么两者之间的区别在哪里 chrome用法和android弹出窗口?!

我不知道自己是否采用正确的方法-我唯一想使用的是: -1 esp8266作为软AP -1个esp8266作为客户端 -1台Android设备作为客户端 -每个客户端都可以从软AP读取内容(每个请求的内容相同-这是传感器的值)

使用软AP可以吗?还是我需要使用DirectWifi / P2P?我认为这是不可能的,因为ESP没有(真正的)mac地址。

或者是否可以通过编程方式连接到强制门户,以便Android将“释放”通信?还是可以通过编程忽略/确认“没有互联网连接”弹出窗口?

更新: 我找到了解决方案!深入Android https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html 它说:“但是,在Lollipop及更高版本上,如果该网络没有Internet连接网络,则不会将请求路由到该网络。” 您必须使用ConnectivityManager#setProcessDefaultNetwork和Network#openConnection(java.net.URL) 就是这样。

0 个答案:

没有答案