使用Android上的Flutter应用程序,我可以将ESP添加到我的WiFi并向其发送请求。
然而,供应和发送请求可以完美地独立工作,而不是直接连续。
目标是在应用程序内部执行整个连接处理:
我从连接到ESP自己的WiFi开始,接下来我提供我的本地WiFi凭据并通过SoftAp配置应用配置。之后,ESP和我的智能手机在同一个本地WiFi中,我可以发现ESP。我选择ESP并发送身份验证请求,这导致此错误消息:
E/flutter (31739): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Connection failed
E/flutter (31739): #0 IOClient.send (package:http/src/io_client.dart:88:7)
E/flutter (31739): <asynchronous suspension>
E/flutter (31739): #1 ChopperClient.send (package:chopper/src/base.dart:305:23)
E/flutter (31739): <asynchronous suspension>
E/flutter (31739): #2 ESPDevice.sendRequest ([...filepath...])
E/flutter (31739): <asynchronous suspension>
发送请求将完美地工作...
- 再次,在完全关闭应用程序并再次打开它之后。
- 使用智能手机(未参与供应)。
- 和 Postman 。
- 如果通过Apple Home进行配置。
- 如果应用程序是在使用 ESP SoftAP Prov 应用程序进行配置后新打开的。
无法发送请求...
- 如果在应用程序中完成调配。
- 如果应用程序在后台运行,同时使用 ESP SoftAP Prov 应用程序进行资源调配。
下面是我的(简化)代码:
await WiFiForIoTPlugin.connect(ssid, password: password);
await WiFiForIoTPlugin.forceWifiUsage(true);
Provisioning provisioning = Provisioning(transport: TransportHTTP(hostname: '192.168.4.1:80'), security: Security1(pop: pop));
await provisioning.establishSession();
await provisioning.sendWifiConfig(ssid: newSsid, password: newPassword);
await provisioning.applyWifiConfig();
await WiFiForIoTPlugin.disconnect();
流行音乐
await provisioning.dispose();
await WiFiForIoTPlugin.disconnect();
Package
我正在使用以下软件包:
- bonsoir:^2.0.0(在我的WiFi中查找设备)
- http:^0.13.5(发送请求)
- 斩波器:^4.0.6(发送请求)
- esp_供应_软连接:^1.0.3(将ESP添加到我的WiFi)
- wifi_iot:^0.3.18(连接到ESP以在我的应用程序内提供WiFi凭据)
1条答案
按热度按时间ie3xauqp1#
我通过在OnWillPop方法中添加以下代码行来解决问题:
不知怎么的,forcewifiUsage在使用WiFi时出现了问题。