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