无法从终端重新启动Android

无法从终端重新启动Android,android,user-permissions,android-reboot,Android,User Permissions,Android Reboot,我需要经常重启我的应用程序来测试一些组件的行为。因此,我想从终端使用cmd,以避免浪费时间手动关闭/打开。我已经找到了这个代码,但是当我把它放在终端上时,它返回了一个权限错误 CMD从终端重新启动: adb shell am broadcast -a android.intent.action.BOOT_COMPLETED java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.

我需要经常重启我的应用程序来测试一些组件的行为。因此,我想从终端使用
cmd
,以避免浪费时间手动关闭/打开。我已经找到了这个代码,但是当我把它放在终端上时,它返回了一个权限错误

CMD从终端重新启动:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=13940, uid=2000
        at android.os.Parcel.readException(Parcel.java:1665)
        at android.os.Parcel.readException(Parcel.java:1618)
        at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3533)
        at com.android.commands.am.Am.sendBroadcast(Am.java:772)
        at com.android.commands.am.Am.onRun(Am.java:404)
        at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
        at com.android.commands.am.Am.main(Am.java:121)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
终端响应:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=13940, uid=2000
        at android.os.Parcel.readException(Parcel.java:1665)
        at android.os.Parcel.readException(Parcel.java:1618)
        at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3533)
        at com.android.commands.am.Am.sendBroadcast(Am.java:772)
        at com.android.commands.am.Am.onRun(Am.java:404)
        at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
        at com.android.commands.am.Am.main(Am.java:121)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)

该广播无法工作,因为它是系统特权的
意图
。如果您只需要在特定活动中重新启动应用程序清理,则
am
命令有一个选项,可以在交付
意图之前强制停止正在运行的进程(
-S
):

adb shell am -S -a "android.action.MAIN" -c "android.category.DEFAULT" -n "your.package.name/.YourActivityName"

试试这个:它无论如何都不起作用。系统的重新启动不应该受到应用程序清单的影响。你尝试在主机PC终端上运行这个命令,对吗?logcati左侧的那个不需要重新启动应用程序。我需要在不关闭/打开manuall operations的情况下触发系统重新启动事件。好的,您的问题没有明确说明这一点。您不能通过发送
Intent
来直接模拟引导完成。系统只允许内部Android框架发送。