我用ESP8266创建了一个软AP,我通过android 6.0 marshmallow mobile连接到它。连接后,我收到移动通知的通知" Wifi没有互联网接入"如果我忽略它并打开浏览器窗口打开我的Web服务器页面或使用自定义构建的应用程序与ESP Web服务器通信,ESP8266不会处理任何请求。但是,点击“保持连接”选项后,一切正常;#34;是"在那个通知中。我试图避免用户进行任何手动操作,因此尝试以编程方式修复它。 是否可以使用ESP作为没有互联网访问的路由器AP并使用Android应用程序连接到它而无需手动处理此通知。
更新:如果我以编程方式通过自定义构建的应用程序连接到此AP,则不会显示此通知,并且所有与ESP的通信仍然被Android阻止。
ESP代码:
WiFiServer server(80);
WiFi.softAP("ssid", "password");
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.begin();
delay(500);
Serial.println("Server started");
Serial.println(WiFi.localIP());
答案 0 :(得分:0)
将Captive Portal与mDNS一起使用。
以下是example,以下是其中的一些亮点:
const char *softAP_ssid = "ESP_ap";
const char *softAP_password = "12345678";
/* hostname for mDNS. Should work at least on windows. Try http://esp8266.local */
const char *myHostname = "esp8266";
// Web server
ESP8266WebServer server(80);
// DNS server
const byte DNS_PORT = 53;
DNSServer dnsServer;
/* Soft AP network parameters */
IPAddress apIP(192, 168, 4, 1);
IPAddress netMsk(255, 255, 255, 0);
void setup() {
/* Setup the DNS server redirecting all the domains to the apIP */
dnsServer.setErrorReplyCode(DNSReplyCode::NoError);
dnsServer.start(DNS_PORT, "*", apIP);
/* Setup web pages: root, wifi config pages, SO captive portal detectors and not found. */
server.on("/", handleRoot);
server.on("/generate_204", handleRoot); //Android captive portal. .
server.on("/fwlink", handleRoot); //Microsoft captive portal.
server.onNotFound ( handleNotFound );
}