乐鑫技术交流
直播中

fansz

9年用户 1315经验值
擅长:制造/封装
私信 关注
[问答]

Android自动连接但未检测到互联网是怎么回事?

我花了很多时间寻找答案,但我似乎找不到解决此问题的方法。
基本上,我正在尝试让我的 Android 智能手机 (v8.1) 自动将其 wifi 连接到设置为 AP 的 ESP8266。问题是,即使它被正确验证,智能手机很快发现没有互联网连接;因此 AP 已保存,但永远不会自动重新连接。
我已经将问题缩小到 Android 端的一个参数,即“captive_portal_detection_enabled”。如果我理解正确的话,如果 AP 无法对某些请求(通常涉及 Google)提供“204”响应,则智能手机会假定没有可用的互联网,然后将忽略它。
因为我试图确定附近是否有已注册的智能手机(通过 MAC 地址),所以我想知道我能做些什么来解决这个问题。
具体来说,注册的设备只有 2 个,包括 Android 和 6.0 及以上版本。
我试图解决这个问题的路线是:
- 简单地嗅探数据包。问题:仅当手机连接到另一个工作的 wifi ap 时才有效(否则智能手机会随机化 MAC 地址)。
- 嗅探数据包,但在智能手机上禁用 MAC 随机化。问题:这将是一个安全威胁;此外,大多数较新的 Android 智能手机都不允许这样做。
- 尝试禁用 captive_portal_detection_enabled。问题:需要有根电话......不会那么优雅。
- 使用 ESP8266 创建一个 AP,可以更改其 SSID(看起来像一个新的 wifi)并且不受 pw 保护。问题:据我所知,Android 不允许自动连接到
开放(公共)Wifi。
我没有尝试过,但我不知道该怎么做/有点冒险:
- 安装 AdAway 以阻止对互联网存在检查的请求
- 第三方应用程序,例如自动化;可以工作,但会是一个巨大的能源消耗者
——在 ESP 上找到一种方法来“模拟”一个工作的互联网连接;之后,ESP 将关闭 wifi 以允许智能手机接收移动数据。
- 使用已知 wifi ap 的名称作为 SSID。不幸的是,智能手机随后可能会禁用真正
具有该 SSID 的 wifi 网络,只要它在范围内,  
您如何保持 ESP8266 与智能手机的连接,而无需在范围内手动重新连接?
我应该重申,我唯一的目标是识别特定智能手机何时在附近或太远。


               


                       

更多回帖

发帖
×
20
完善资料,
赚取积分