3.6 KiB
3.6 KiB
小米手机权限设置指南 - 解决ESP32连接问题
🚨 问题症状
- APP显示"网络类型: wifi"但"连接状态: 未连接"
- 无法获取WiFi详细信息 (undefined)
- HTTP请求全部超时
- 设备发现失败
🔍 根本原因
Android 13+ (小米MIUI) 对WiFi信息访问权限管控极严格
- 获取WiFi SSID、本地IP需要位置权限
- 小米手机额外有"局域网访问限制"
- 权限未正确开启导致APP无法建立局域网连接
✅ 完整解决方案
步骤1: 重新云打包APP (必须)
权限修改必须通过云打包才能生效,真机调试无效!
- 保存所有代码修改
- HBuilderX → 发行 → 原生App-云打包
- 选择Android平台,等待打包完成
- 卸载手机上的旧APP,安装新APK
步骤2: 开启APP位置权限 (关键)
方法一:设置 → 应用管理
- 打开手机设置 → 应用管理
- 找到你的APP (StillSense)
- 点击权限管理
- 找到位置信息 → 选择仅在使用中允许
- 返回,找到获取设备信息 → 选择允许
方法二:设置 → 隐私保护
- 打开设置 → 隐私保护 → 权限管理
- 点击位置信息
- 找到你的APP → 选择仅在使用中允许
步骤3: 关闭小米局域网限制 (重要)
关闭局域网访问限制
- 设置 → 隐私保护 → 权限管理 → 局域网访问
- 找到你的APP → 选择允许
关闭防追踪功能
- 设置 → 隐私保护 → 防追踪
- 关闭局域网设备防追踪
步骤4: 网络相关设置
确保WiFi连接正常
- 设置 → WLAN → 确认连接到2.4G WiFi
- 点击已连接的WiFi → 查看IP地址 (应该是192.168.1.x)
关闭省电模式
- 设置 → 省电与电池 → 关闭省电模式
- 或者将APP添加到省电白名单
步骤5: 验证设置
重启APP测试
- 完全关闭APP (从后台清除)
- 重新打开APP
- 进入设备发现页面
- 输入ESP32 IP:
192.168.1.98 - 点击**🔍 连通性测试**
预期结果
✅ 目标设备连接: 成功
URL: http://192.168.1.98:80/api/status
状态码: 200
🔧 如果仍然失败
检查清单
- 确认已云打包并安装新APK
- 位置权限已开启 (仅在使用中允许)
- 局域网访问权限已允许
- 关闭了局域网设备防追踪
- 手机和ESP32在同一WiFi (2.4G)
- ESP32设备已启动且IP正确
终极解决方案
如果以上步骤都完成但仍失败:
- 重启手机 - 让权限设置生效
- 重新连接WiFi - 刷新网络状态
- 尝试其他手机 - 排除设备特殊性
- 检查路由器设置 - 确认无AP隔离
📱 其他Android手机参考
华为手机
- 设置 → 应用和服务 → 权限管理 → 位置信息
- 设置 → 隐私和安全 → 更多安全设置 → 设备连接
OPPO/一加手机
- 设置 → 权限与隐私 → 权限管理 → 位置权限
- 设置 → 其他设置 → 设备与隐私 → 位置服务
vivo手机
- 设置 → 权限管理 → 位置信息
- 设置 → 更多设置 → 权限管理 → 位置权限
🎯 核心要点
- Android 13+获取WiFi信息必须有位置权限 - 这是系统强制要求
- 小米MIUI有额外的局域网访问限制 - 必须单独开启
- 权限修改必须云打包 - 真机调试权限不完整
- 设置后需要重启APP - 让权限生效
按此指南操作后,APP应该能正常连接ESP32设备!