在Android Studio adb 广播时,遇到问题:执行 adb shell am broadcast -a 报错, 报错如下:
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5174, uid=2000
at com.android.server.am.ActivityManagerService.broadcastIntentLockedTraced(ActivityManagerService.java:14546)
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:14337)
at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:15243)
at com.android.server.am.ActivityManagerShellCommand.runSendBroadcast(ActivityManagerShellCommand.java:925)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:244)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:9677)
at android.os.Binder.shellCommand(Binder.java:1068)
at android.os.Binder.onTransact(Binder.java:888)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5086)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2653)
at android.os.Binder.execTransactInternal(Binder.java:1344)
at android.os.Binder.execTransact(Binder.java:1275)
解决办法:adb shell am broadcast -a action
原因:Android 8.0后的需要在-a 后加上 action