我正尝试将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权限才能授予此权限? 如果是这样的话,为什么不需要设备通过adb shell
来运行它?
我是Android新手,请更清楚地解释一下内部发生了什么以及如何继续。
你用adb shell
运行的命令用shell(UID=2000)
用户权限执行。 您从您的java
代码运行的命令将以您的应用程序的UID
权限执行。 因此有所不同。