@echo off chcp 65001 >nul echo ======================================== echo 开机自启动功能检测 echo ======================================== echo. REM 设置 ADB 路径 set ADB_PATH=D:\NVPACK\android-sdk-windows\platform-tools set PATH=%ADB_PATH%;%PATH% set PACKAGE_NAME=com.YuyeTech.HeartRate echo [检测 1/6] 检查应用是否安装... adb shell pm list packages | findstr %PACKAGE_NAME% if errorlevel 1 ( echo ❌ 应用未安装 pause exit /b 1 ) echo ✅ 应用已安装 echo. echo [检测 2/6] 检查 BootReceiver 是否注册... echo. adb shell dumpsys package %PACKAGE_NAME% | findstr "BootReceiver" if errorlevel 1 ( echo ❌ BootReceiver 未找到 echo. echo 可能原因: echo 1. AndroidManifest.xml 中未声明 BootReceiver echo 2. 应用版本太旧 echo. ) else ( echo ✅ BootReceiver 已注册 ) echo. echo [检测 3/6] 检查 BOOT_COMPLETED 权限... echo. adb shell dumpsys package %PACKAGE_NAME% | findstr "BOOT_COMPLETED" if errorlevel 1 ( echo ❌ BOOT_COMPLETED 权限未声明 ) else ( echo ✅ BOOT_COMPLETED 权限已声明 ) echo. echo [检测 4/6] 检查应用是否有开机启动权限(系统级)... echo. echo --- 自启动管理状态 --- adb shell dumpsys package %PACKAGE_NAME% | findstr "enabled" echo. echo [检测 5/6] 检查 Device Owner 状态... echo. adb shell dumpsys device_policy | findstr "Device Owner" if errorlevel 1 ( echo ⚠️ 未设置为 Device Owner echo 某些 Kiosk 功能可能无法使用 ) else ( echo ✅ 已设置为 Device Owner ) echo. echo [检测 6/6] 测试手动触发开机广播... echo. echo 正在模拟开机广播... adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p %PACKAGE_NAME% timeout /t 2 /nobreak >nul echo. echo 检查应用是否启动... adb shell dumpsys activity activities | findstr "PandoraEntry" if errorlevel 1 ( echo ❌ 应用未自动启动 ) else ( echo ✅ 应用已启动 ) echo. echo ======================================== echo 检测结果 echo ======================================== echo. echo 📋 开机自启动需要满足的条件: echo. echo 1. ✅ BootReceiver 已注册 echo 2. ✅ BOOT_COMPLETED 权限已声明 echo 3. ✅ 应用已安装 echo 4. ⚠️ 设备厂商的自启动管理允许(需手动设置) echo 5. ⚠️ 电池优化白名单(可选) echo. echo ⚠️ 如果开机后应用未启动,可能原因: echo. echo 原因 1: 设备厂商限制(最常见) echo - 小米:安全中心 → 应用管理 → 权限 → 自启动管理 echo - 华为:手机管家 → 应用启动管理 echo - OPPO:设置 → 应用管理 → 自启动管理 echo - VIVO:i管家 → 应用管理 → 自启动管理 echo. echo 原因 2: 电池优化 echo - 设置 → 电池 → 电池优化 → 选择"不优化" echo. echo 原因 3: 后台运行限制 echo - 设置 → 应用 → %PACKAGE_NAME% → 电池 → 后台运行:允许 echo. echo 原因 4: 通知权限(某些系统需要) echo - 设置 → 应用 → %PACKAGE_NAME% → 通知:允许 echo. echo 💡 建议操作: echo 1. 运行"设置开机自启动权限.bat"自动配置 echo 2. 手动在设备上设置自启动权限 echo 3. 重启设备测试 echo. pause