Понимание команды через оболочку adb и через код - Android
Я пытаюсь датьBATTERSTATS
разрешение на приложение. Когда я запускаю команду с ПК - она работает просто отлично:
adb shell pm grant com.example.sample.myapplication android.permission.BATTERY_STATS
Но то же самоеpm grant
команда не работает при запуске из приложения Android:
java.lang.Process process = Runtime.getRuntime().exec("pm grant com.example.sample.myapplication android.permission.BATTERY_STATS");
Требуется ли для этого разрешение root? Если это так, то почему для запуска через него не требуется рутирование устройства?adb shell
?
Я новичок в Android, пожалуйста, объясните немного более четко, что происходит внутри и как действовать.