我正在尝试向应用授予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权限才能授予此权限?
如果是这样,为什么它不需要设备根植于adb shell
来运行它?
我是Android新手,请更清楚地解释一下内部发生的事情以及如何继续。
答案 0 :(得分:2)
使用adb shell
执行的命令将以shell(UID=2000)
用户权限执行。您从java
代码运行的命令将使用您应用的UID
权限执行。因此差异。