не может перезагрузить Android из терминала - PullRequest
0 голосов
/ 11 марта 2019

Мне нужно часто перезагружать приложение, чтобы проверить поведение некоторых компонентов. Поэтому я хочу использовать 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)

1 Ответ

0 голосов
/ 11 марта 2019

Эта трансляция не будет работать, поскольку она является системной привилегией Intent. Если вам просто нужно перезапустить приложение в чистом виде в определенной операции, команда am имеет возможность принудительно остановить запущенный процесс (-S) перед доставкой Intent:

adb shell am -S -a "android.action.MAIN" -c "android.category.DEFAULT" -n "your.package.name/.YourActivityName"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...