现在 WiFi 检测功能支持两种对话框模式:
┌─────────────────────────────────┐
│ WiFi 未连接 │
├─────────────────────────────────┤
│ 检测到设备未连接 WiFi 网络。 │
│ │
│ 请配置 WiFi 后才能继续使用。 │
├─────────────────────────────────┤
│ [去设置] [不再提示] │
└─────────────────────────────────┘
按钮说明:
┌─────────────────────────────────────────┐
│ WiFi 未连接 │
├─────────────────────────────────────────┤
│ 检测到设备未连接 WiFi 网络。 │
│ │
│ 建议连接 WiFi 以确保应用正常运行。 │
├─────────────────────────────────────────┤
│ [去设置] [稍后再说] [重新启用提示] │
└─────────────────────────────────────────┘
按钮说明:
应用启动
↓
检测 WiFi(2秒延迟)
↓
WiFi 未连接 + 未设置"不再提示"
↓
显示完整版对话框
↓
用户选择:
├─ "去设置" → 跳转 WiFi 设置 → 返回后重新检测
└─ "不再提示" → 保存设置 → 关闭对话框
应用启动
↓
检测 WiFi(2秒延迟)
↓
WiFi 未连接 + 已设置"不再提示"
↓
显示简化版对话框
↓
用户选择:
├─ "去设置" → 跳转 WiFi 设置 → 返回后重新检测
├─ "稍后再说" → 关闭对话框
└─ "重新启用提示" → 清除设置 → 显示完整版对话框
简化版对话框
↓
点击"重新启用提示"
↓
清除"不再提示"设置
↓
500ms 延迟
↓
自动显示完整版对话框
↓
用户可以重新选择
checkWifiOnActivityStart()修改前:
if (shouldSkipWifiCheck(activity)) {
Log.d(TAG, "用户已选择不再提示,跳过 WiFi 检测");
return; // ❌ 直接跳过,不显示任何对话框
}
修改后:
if (!isWifiConnected(activity)) {
if (shouldSkipWifiCheck(activity)) {
showSimpleWifiDialog(activity); // ✅ 显示简化版对话框
} else {
showWifiNotConnectedDialog(activity); // ✅ 显示完整版对话框
}
}
checkWifiOnActivityResume()同样的修改逻辑,确保从 WiFi 设置返回后也能正确显示对应的对话框。
showSimpleWifiDialog(Activity activity)显示简化版对话框,包含三个按钮:
不会完全屏蔽提示
提供反悔机会
更友好的提示
灵活的选择
| 特性 | 完整版对话框 | 简化版对话框 |
|---|---|---|
| 显示时机 | 首次检测或重新启用后 | 用户选择"不再提示"后 |
| 标题 | WiFi 未连接 | WiFi 未连接 |
| 消息语气 | 强制性(必须连接) | 建议性(建议连接) |
| 按钮数量 | 2 个 | 3 个 |
| 按钮 1 | 去设置 | 去设置 |
| 按钮 2 | 不再提示 | 稍后再说 |
| 按钮 3 | - | 重新启用提示 |
| 可取消 | ❌ | ❌ |
D WifiCheckHelper: 📍 延迟检测开始执行
D WifiCheckHelper: ⚠️ WiFi 未连接
D WifiCheckHelper: 是否跳过 WiFi 检测: false
D WifiCheckHelper: 显示完整版 WiFi 提示对话框
D WifiCheckHelper: ✅ WiFi 未连接对话框已显示(完整版)
D WifiCheckHelper: 📍 延迟检测开始执行
D WifiCheckHelper: ⚠️ WiFi 未连接
D WifiCheckHelper: 是否跳过 WiFi 检测: true
D WifiCheckHelper: 用户之前选择了不再提示,显示简化版对话框
D WifiCheckHelper: ✅ WiFi 未连接对话框已显示(简化版)
D WifiCheckHelper: 用户选择:重新启用提示
D WifiCheckHelper: ✅ WiFi 检测设置已重置
D WifiCheckHelper: ✅ WiFi 未连接对话框已显示(完整版)
重新编译应用
gradlew clean assembleDebug
重新安装
adb install -r app\build\outputs\apk\debug\app-debug.apk
测试
.\快速测试WiFi检测.bat
现在的 WiFi 检测功能更加人性化:
✅ 永远不会完全屏蔽提示 - 即使选择"不再提示"也会有简化版
✅ 提供反悔机会 - 可以重新启用完整提示
✅ 更灵活的选择 - 三个按钮满足不同需求
✅ 更友好的文案 - 建议而非强制
✅ 保持功能性 - 始终可以跳转到 WiFi 设置
这样既满足了强制检测 WiFi 的需求,又不会让用户感到被"锁死"!