检测开机自启动.bat 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. @echo off
  2. chcp 65001 >nul
  3. echo ========================================
  4. echo 开机自启动功能检测
  5. echo ========================================
  6. echo.
  7. REM 设置 ADB 路径
  8. set ADB_PATH=D:\NVPACK\android-sdk-windows\platform-tools
  9. set PATH=%ADB_PATH%;%PATH%
  10. set PACKAGE_NAME=com.YuyeTech.HeartRate
  11. echo [检测 1/6] 检查应用是否安装...
  12. adb shell pm list packages | findstr %PACKAGE_NAME%
  13. if errorlevel 1 (
  14. echo ❌ 应用未安装
  15. pause
  16. exit /b 1
  17. )
  18. echo ✅ 应用已安装
  19. echo.
  20. echo [检测 2/6] 检查 BootReceiver 是否注册...
  21. echo.
  22. adb shell dumpsys package %PACKAGE_NAME% | findstr "BootReceiver"
  23. if errorlevel 1 (
  24. echo ❌ BootReceiver 未找到
  25. echo.
  26. echo 可能原因:
  27. echo 1. AndroidManifest.xml 中未声明 BootReceiver
  28. echo 2. 应用版本太旧
  29. echo.
  30. ) else (
  31. echo ✅ BootReceiver 已注册
  32. )
  33. echo.
  34. echo [检测 3/6] 检查 BOOT_COMPLETED 权限...
  35. echo.
  36. adb shell dumpsys package %PACKAGE_NAME% | findstr "BOOT_COMPLETED"
  37. if errorlevel 1 (
  38. echo ❌ BOOT_COMPLETED 权限未声明
  39. ) else (
  40. echo ✅ BOOT_COMPLETED 权限已声明
  41. )
  42. echo.
  43. echo [检测 4/6] 检查应用是否有开机启动权限(系统级)...
  44. echo.
  45. echo --- 自启动管理状态 ---
  46. adb shell dumpsys package %PACKAGE_NAME% | findstr "enabled"
  47. echo.
  48. echo [检测 5/6] 检查 Device Owner 状态...
  49. echo.
  50. adb shell dumpsys device_policy | findstr "Device Owner"
  51. if errorlevel 1 (
  52. echo ⚠️ 未设置为 Device Owner
  53. echo 某些 Kiosk 功能可能无法使用
  54. ) else (
  55. echo ✅ 已设置为 Device Owner
  56. )
  57. echo.
  58. echo [检测 6/6] 测试手动触发开机广播...
  59. echo.
  60. echo 正在模拟开机广播...
  61. adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p %PACKAGE_NAME%
  62. timeout /t 2 /nobreak >nul
  63. echo.
  64. echo 检查应用是否启动...
  65. adb shell dumpsys activity activities | findstr "PandoraEntry"
  66. if errorlevel 1 (
  67. echo ❌ 应用未自动启动
  68. ) else (
  69. echo ✅ 应用已启动
  70. )
  71. echo.
  72. echo ========================================
  73. echo 检测结果
  74. echo ========================================
  75. echo.
  76. echo 📋 开机自启动需要满足的条件:
  77. echo.
  78. echo 1. ✅ BootReceiver 已注册
  79. echo 2. ✅ BOOT_COMPLETED 权限已声明
  80. echo 3. ✅ 应用已安装
  81. echo 4. ⚠️ 设备厂商的自启动管理允许(需手动设置)
  82. echo 5. ⚠️ 电池优化白名单(可选)
  83. echo.
  84. echo ⚠️ 如果开机后应用未启动,可能原因:
  85. echo.
  86. echo 原因 1: 设备厂商限制(最常见)
  87. echo - 小米:安全中心 → 应用管理 → 权限 → 自启动管理
  88. echo - 华为:手机管家 → 应用启动管理
  89. echo - OPPO:设置 → 应用管理 → 自启动管理
  90. echo - VIVO:i管家 → 应用管理 → 自启动管理
  91. echo.
  92. echo 原因 2: 电池优化
  93. echo - 设置 → 电池 → 电池优化 → 选择"不优化"
  94. echo.
  95. echo 原因 3: 后台运行限制
  96. echo - 设置 → 应用 → %PACKAGE_NAME% → 电池 → 后台运行:允许
  97. echo.
  98. echo 原因 4: 通知权限(某些系统需要)
  99. echo - 设置 → 应用 → %PACKAGE_NAME% → 通知:允许
  100. echo.
  101. echo 💡 建议操作:
  102. echo 1. 运行"设置开机自启动权限.bat"自动配置
  103. echo 2. 手动在设备上设置自启动权限
  104. echo 3. 重启设备测试
  105. echo.
  106. pause