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

Команда, выполняемая с adb shell выполняется с правами пользователя shell(UID=2000) . Команда, запускаемая из вашего java кода, выполняется с привилегиями UID вашего приложения. Таким образом, разница.

  • Элементы ListView не доступны для кликов. Зачем?
  • Как передавать данные между действиями в приложении Android?
  • Как получить уникальный идентификатор устройства в Android?
  • Поддержка Android Repo 46.0.0 с Android Studio 2.3
  • Ошибка конструктора без значения по умолчанию в fragmentах
  • Как изменить fragmentы с помощью Android-навигатора
  • Где я могу найти исходный код Android в Интернете?
  • Как всегда запускать службу в фоновом режиме?
  • Пример Android для AsyncTask
  • Вывод мусора: MediaPlayer завершился без выпуска
  • Уведомление: активность уже открыта
  • Interesting Posts

    Должны ли быть объявлены методы в интерфейсе Java с модификатором открытого доступа или без него?

    Использование JSoup для извлечения содержимого таблицы HTML

    Что круто о дженериках, зачем их использовать?

    Автоматизация VMware для переключения на полноэкранную виртуальную машину после загрузки хоста

    Я не могу увидеть элементы FirebaseRecyclerAdapter на моем макете

    Как получить постоянную постоянную PI в Swift

    Win32: полноэкранная и скрытая панель задач

    Как установить интервал прерывания или тайм-аута TCP / IP в Windows XP?

    Всплывающее окно по внешнему экрану входящих вызовов Android, например, приложение для Android-звонящего

    Добавление полосы прокрутки в подзаголовки в графическом интерфейсе

    Сертификаты SSL привязаны к IP-адресу серверов?

    Деградированная производительность игры после формата

    Упаковка / извлечение Windows 10 Native Flash Player

    Интерпретация “имеет длину> 1” предупреждение от функции `if`

    Ограничить оси ggplot2 без удаления данных (внешние ограничения): увеличить

    Давайте будем гением компьютера.