快速开始.md 9.0 KB

快速开始 - Kiosk 模式自动启动

🎯 目标

让 Kiosk 模式(禁用锁屏、防退出)在应用启动时自动激活,无需在 JS 中调用任何代码

✅ 已完成的工作

1. 创建的文件

  • app/src/main/java/com/YuyeTech/HeartRate/MyApplication.java - 自定义 Application
  • app/src/main/java/com/YuyeTech/HeartRate/KioskHelper.java - 锁屏控制工具
  • app/src/main/res/xml/device_admin.xml - Device Admin 配置

2. 修改的文件

  • app/src/main/AndroidManifest.xml
    • Application 改为 com.YuyeTech.HeartRate.MyApplication
    • 添加 Kiosk 相关权限
    • 添加 Device Admin Receiver
    • 添加 Boot Receiver

3. 创建的文档

  • 📄 README_KIOSK_INTEGRATION.md - 集成方案总览
  • 📄 KIOSK_SETUP_GUIDE.md - 详细配置指南
  • 📄 QUICK_TEST_GUIDE.md - 快速测试指南
  • 📄 PROJECT_STRUCTURE.md - 项目结构说明
  • 📄 快速开始.md - 本文件

🚀 下一步操作

选项 1:快速测试(无需 Device Owner)

适用于快速验证功能是否正确集成。

# 1. 清理并编译
gradlew clean assembleDebug

# 2. 安装到设备
adb install app/build/outputs/apk/debug/app-debug.apk

# 3. 查看日志(新开一个终端)
adb logcat | grep -E "MyApplication|KioskHelper|KioskManager"

# 4. 启动应用
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry

期望看到的日志

D MyApplication: Application 初始化
D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
D KioskHelper: ✅ 屏幕保持常亮
W KioskHelper: ⚠️ 不是 Device Owner,无法禁用锁屏

如果看到以上日志,说明自动初始化成功!✅

可用功能

  • ✅ 屏幕常亮
  • ✅ 全屏沉浸
  • ✅ 自动初始化(无需 JS 调用)
  • ⚠️ 锁屏禁用(需要 Device Owner)
  • ⚠️ LockTask 模式(需要 Device Owner)

选项 2:完整部署(设置 Device Owner)

适用于生产环境或完整功能测试。

# 1. 恢复出厂设置(重要!)
# 手动操作:设置 → 系统 → 重置 → 恢复出厂设置

# 2. 不要登录任何账号(包括 Google 账号)

# 3. 启用 USB 调试
# 设置 → 关于手机 → 连续点击版本号 7 次 → 开发者选项 → USB 调试

# 4. 编译并安装
gradlew assembleRelease
adb install app/build/outputs/apk/release/app-release.apk

# 5. 设置为 Device Owner
adb shell dpm set-device-owner com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver

# 6. 验证是否成功
adb shell dumpsys device_policy | grep "Device Owner"

# 7. 启动应用并查看日志
adb logcat -c
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry
adb logcat | grep -E "MyApplication|KioskHelper|KioskManager"

期望看到的日志

D MyApplication: Application 初始化
D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
D KioskHelper: ✅ 锁屏已禁用
D KioskHelper: ✅ 屏幕保持常亮
D KioskManager: ✅ LockTask 启用(一次)

可用功能

  • ✅ 屏幕常亮
  • ✅ 全屏沉浸
  • ✅ 自动初始化(无需 JS 调用)
  • ✅ 锁屏禁用
  • ✅ LockTask 模式(防止退出)
  • ✅ 拦截 Home/Back 键

🔧 常用命令

编译命令

# Debug 版本
gradlew assembleDebug

# Release 版本
gradlew assembleRelease

# 清理
gradlew clean

日志查看

# 查看 Kiosk 相关日志
adb logcat | grep -E "KioskManager|MyApplication|KioskHelper"

# 查看 WiFi 相关日志
adb logcat | grep WifiModule

# 查看崩溃日志
adb logcat | grep -E "AndroidRuntime|FATAL"

# 清空日志
adb logcat -c

Device Owner 管理

# 设置 Device Owner
adb shell dpm set-device-owner com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver

# 验证 Device Owner
adb shell dumpsys device_policy | grep "Device Owner"

# 移除 Device Owner(应急)
adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver

应用控制

# 启动应用
adb shell am start -n com.YuyeTech.HeartRate/io.dcloud.PandoraEntry

# 强制停止应用
adb shell am force-stop com.YuyeTech.HeartRate

# 退出 LockTask 模式
adb shell am task lock stop

# 卸载应用
adb uninstall com.YuyeTech.HeartRate

🧪 验证清单

✅ 基础验证(无需 Device Owner)

  • 编译成功
  • 安装成功
  • 应用启动正常
  • 日志显示 "✅ 绑定 Kiosk 到: PandoraEntry"
  • 屏幕保持常亮不熄灭
  • 状态栏和导航栏隐藏

✅ 完整验证(需要 Device Owner)

  • Device Owner 设置成功
  • 日志显示 "✅ 锁屏已禁用"
  • 日志显示 "✅ LockTask 启用"
  • 按 Home 键无法退出应用
  • 按 Back 键无法退出应用
  • 下拉状态栏后自动重新隐藏
  • 五指长按 5 秒能弹出密码框
  • 输入密码 9527 能退出 Kiosk 模式

🐛 常见问题

Q: 编译失败,提示找不到 BuildConfig

A: 清理重新编译

gradlew clean
gradlew assembleDebug

Q: 安装失败,提示签名冲突

A: 卸载旧版本

adb uninstall com.YuyeTech.HeartRate
adb install app/build/outputs/apk/debug/app-debug.apk

Q: 没有看到日志

A: 检查过滤条件

# 使用更宽松的过滤
adb logcat | grep -i kiosk

# 或者查看所有日志
adb logcat

Q: Device Owner 设置失败

错误信息Not allowed to set the device owner because there are already several users on the device

解决方法

  1. 恢复出厂设置
  2. 移除所有账号
  3. 不要在初始设置中登录账号
  4. 重新执行设置命令

Q: 应用卡死无法退出

解决方法

# 方法 1:退出 LockTask
adb shell am task lock stop

# 方法 2:强制停止
adb shell am force-stop com.YuyeTech.HeartRate

# 方法 3:移除 Device Owner
adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver

📚 详细文档

  • 集成总览README_KIOSK_INTEGRATION.md
  • 详细配置KIOSK_SETUP_GUIDE.md
  • 快速测试QUICK_TEST_GUIDE.md
  • 项目结构PROJECT_STRUCTURE.md

🎯 核心代码位置

如果需要修改逻辑,关注以下文件:

自动初始化逻辑

文件app/src/main/java/com/YuyeTech/HeartRate/MyApplication.java 位置registerActivityLifecycleCallbacks()onActivityCreated()

锁屏控制

文件app/src/main/java/com/YuyeTech/HeartRate/KioskHelper.java 方法disableLockScreen(), keepScreenOn(), enableLockScreen()

Kiosk 管理

文件myLockView/src/main/java/com/ble/mylockview/admin/KioskManager.java 关键方法attach(), enableLockTask(), exitKiosk(), interceptTouch()

💡 重要提示

  1. Debug vs Release

    • Debug 模式:宽松,便于开发调试
    • Release 模式:严格,需要 Device Owner
  2. 密码安全

    • 默认管理员密码:9527
    • 生产环境务必修改:myLockView/.../KioskManager.java 第 55 行
  3. 开机自启动

    • 已集成 BootReceiver
    • 设备重启后自动启动应用
    • 可在 AndroidManifest.xml 中禁用
  4. WiFi 模块

    • 需要通过 JS 调用(交互式功能)
    • 不会自动弹出
    • 参考 myWIFIView/src/main/java/com/ble/mywifiview/WifiModule.java

✨ 成功标志

当你看到以下完整的日志序列时,说明集成成功:

Device Owner 模式

01-22 16:30:00.123 D MyApplication: Application 初始化
01-22 16:30:00.234 D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
01-22 16:30:00.345 D KioskHelper: ✅ 锁屏已禁用
01-22 16:30:00.456 D KioskHelper: ✅ 屏幕保持常亮
01-22 16:30:00.567 D KioskManager: ✅ LockTask 启用(一次)

非 Device Owner 模式

01-22 16:30:00.123 D MyApplication: Application 初始化
01-22 16:30:00.234 D MyApplication: ✅ 绑定 Kiosk 到: PandoraEntry
01-22 16:30:00.345 D KioskHelper: ✅ 屏幕保持常亮
01-22 16:30:00.456 W KioskHelper: ⚠️ 不是 Device Owner,无法禁用锁屏
01-22 16:30:00.567 D KioskManager: ❌ 非 DeviceOwner,Kiosk 无效(只会提示一次)

📞 需要帮助?

如果遇到问题,请按照以下步骤:

  1. 查看日志

    adb logcat | grep -E "MyApplication|KioskHelper|KioskManager|ERROR"
    
  2. 检查配置

    • AndroidManifest.xml 中 Application 是否为 MyApplication
    • Device Owner 是否设置成功
    • 权限是否正确声明
  3. 参考文档

    • 详细错误排查:KIOSK_SETUP_GUIDE.md → 故障排查章节
    • 快速测试流程:QUICK_TEST_GUIDE.md
  4. 重置设备(最后手段)

    # 移除 Device Owner
    adb shell dpm remove-active-admin com.YuyeTech.HeartRate/com.ble.mylockview.admin.KioskDeviceAdminReceiver
       
    # 卸载应用
    adb uninstall com.YuyeTech.HeartRate
       
    # 恢复出厂设置
    # 手动操作:设置 → 系统 → 重置
    

祝你好运! 🚀

如果一切正常,你应该能在 5 分钟内完成基础测试,15 分钟内完成完整部署。