Отказ в разрешении на запуск - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь разработать подпрограмму Tasker (в конечном счете, экспортировать как приложение), которая будет напрямую обращаться к «ящику приложения» модуля запуска электронных чернил. Send Intent не работает, и запуск команды оболочки также не работает. Наверное, я не понимаю, что я прочитал о поиске намерений в AndroidManifest.

Когда я запустил лаунчер и перешел в секцию ящиков приложений, я сделал это через adb:

dumpsys window windows | grep -E 'mCurrentFocus'

Результат:

com.harasoft.relaunch/com.harasoft.relaunch.AllApplications

Если я правильно понял, это должно быть имя пакета / активность.

AndroidManifest.xml (https://github.com/yiselieren/ReLaunch/blob/master/AndroidManifest.xml) для приложения показывает AllApplications как намерение (и для него задан фильтр намерений), так что это выглядит хорошо.

Отправка намерения из Tasker с использованием только имени пакета, и действие выдает ошибку выхода. Через adb shell я пробовал это:

# am start -n com.harasoft.relaunch/com.harasoft.relaunch.AllApplications   

Это не дает желаемого результата, но вместо этого выдает ошибку:

Starting: Intent { cmp=com.harasoft.relaunch/.AllApplications }
java.lang.SecurityException: Permission Denial: starting Intent {     
flg=0x10000000 cmp=com.harasoft.relaunch/.AllApplications } from null    
(pid=-1, uid=-1) requires null

И вот где я застрял. Я читал об этой ошибке, но не все понял. Кажется, что намерение либо должно быть явно экспортировано в Манифесте, либо сопровождаться фильтром намерения. В Манифесте есть фильтр намерений (android.intent.action.LAUNCHER), если я не понял это неправильно. Содержимое в Манифесте, начинающееся с "." кажется, что работают, пока те без "." не делайте. Я читал, что это не должно иметь никакого значения.

Может кто-нибудь просветить меня?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...