| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- @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
|