我正在尝试向应用授予 BATTERSTATS
权限。当我从 PC 运行命令时 - 它工作得很好:
adb shell pm grant com.example.sample.myapplication android.permission.BATTERY_STATS
但是从 Android 应用程序运行时,相同的 pm grant
命令不起作用:
java.lang.Process process = Runtime.getRuntime().exec("pm grant com.example.sample.myapplication android.permission.BATTERY_STATS");
是否需要root权限才能授予此权限? 如果是这样,为什么不需要设备 root 即可通过 adb shell
运行它?
我是 Android 新手,请更清楚地解释一下里面发生了什么以及如何继续。
请您参考如下方法:
使用 adb shell
运行的命令将使用 shell(UID=2000)
用户权限执行。您从 java
代码运行的命令将使用您应用的 UID
权限执行。这就是差异。