3

我有一个 Wifi 微控制器 ESP8266,它也有一个接入点。我参考了其他博客,其中讨论了以编程方式连接到接入点并尝试了两种方式

  1. 使用公开的标准 APIS

    wifiManager.enableNetwork(netId, true); wifiManager.saveConfiguration(); wifiManager.reconnect();

  2. 使用带有 @hide 的 API

    wifiManager.connect(netId, ActionListener)

我面临的问题是,在我连接到接入点一段时间后,它与 esp8266 接入点断开连接,并以上述两种方法连接回我的路由器。

如果我通过顶部栏或设置应用程序连接,它以稳定的方式连接并且永远不会断开连接,我什至会收到通知

Wi-Fi has no internet access

当我以编程方式连接时,我没有收到无法访问互联网的通知。设置应用程序如何能够以稳定的方式连接到接入点,而我的应用程序无法连接。

我正在运行 Androidn 6.0.1 API 23

4

2 回答 2

0

如果您在断开连接之前明确要求使用Network一次,它将无限期保持连接:

  • ConnectivityManager.bindProcessToNetwork(Network)
  • Network.bindSocket(Socket)
  • Network.openConnection(URL)

另请参阅我关于如何同步网络连接和访问之间的时间的答案:https ://stackoverflow.com/a/52304308/4969370

于 2018-09-12T22:43:50.113 回答
0

我发现 Android 连接到 ESP8266 或 ESP32 热点的两个主要问题。我使用的是 AP-STA 双模式。我读到,由于 ESP8266 和 ESP32 具有单个无线电处理 AP 和 STA,因此连接将很脆弱且不太稳定,这就是为什么我的 android 设备在配置期间与 AP 断开连接的原因。

解决此问题的方法是在配置期间将 ESP* 设备保持在 SOFT_AP 模式,在连接到接入点时保持 STA 模式,并且永远不要处于 AP-STA 双模式。这完全解决了我的稳定性问题。

于 2019-04-02T15:27:07.413 回答