Могу ли я позвонить предоставить разрешение ADB команду из приложения - PullRequest
0 голосов
/ 07 марта 2019

У меня проблема с предоставлением WRITE_EXTERNAL_STORAGE разрешения времени выполнения в приложении. При принятии разрешения приложение перезапускается, это я понял из-за нашей пользовательской прошивки.

Что мне нравится знать, так это то, что мы можем вызвать команду ADB для предоставления разрешения из приложения. Я пытался звонить, как это

final String STORAGE_PERMISSION_COMMAND = "sh -c adb -d shell pm grant com.example.easypermission.easypermissionsample android.permission.WRITE_EXTERNAL_STORAGE";
try {
     Runtime.getRuntime().exec(STORAGE_PERMISSION_COMMAND,null,null);
} catch (IOException e) {
    e.printStackTrace();
}

Но ничего не происходит. Может кто-нибудь сказать мне, можно ли это сделать, и если да, то как?

1 Ответ

1 голос
/ 08 марта 2019

Как говорит ссылка @Onik, мы не можем запускать команды ADB внутри приложения.Когда вы запускаете приложение, его код выполняется в среде.Поэтому, когда вы вызываете Runtime.getRuntime().exec("adb shell command"), вы на самом деле пытаетесь запустить другой процесс сервера adb (на целевом устройстве сейчас), который запускается через tcp порт 5038, поскольку порт 5037 занят.

...