2

我正在尝试授予BATTERSTATS应用程序权限。当我从 PC 运行命令时 - 它工作得很好:

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权限才能授予此权限?如果是这样,为什么它不需要root设备来运行它adb shell

我是Android新手,请更清楚地解释里面发生了什么以及如何进行。

4

1 回答 1

3

您运行的命令adb shell将以shell(UID=2000)用户权限执行。您从java代码运行的命令将使用您的应用程序的UID权限执行。因此差异。

于 2016-09-15T15:33:55.553 回答