mBatteryInfo = IBatteryStats.Stub.asInterface(ServiceManager.getService(BatteryStats.SERVICE_NAME));
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
这是BatteryStatsHelp,我在清单中有这个权限,但仍有错误
Caused by: java.lang.SecurityException: uid 10160 does not have android.permission.BATTERY_STATS.
at android.os.Parcel.readException(Parcel.java:1599)
at android.os.Parcel.readException(Parcel.java:1552)
at com.android.internal.app.IBatteryStats$Stub$Proxy.getStatisticsStream(IBatteryStats.java:1143)
at com.android.internal.os.BatteryStatsHelper.getStats(BatteryStatsHelper.java:755)
at com.android.internal.os.BatteryStatsHelper.load(BatteryStatsHelper.java:746)
at com.android.internal.os.BatteryStatsHelper.getStats(BatteryStatsHelper.java:236)
at com.android.internal.os.BatteryStatsHelper.refreshStats(BatteryStatsHelper.java:323)
at com.android.internal.os.BatteryStatsHelper.refreshStats(BatteryStatsHelper.java:316)
at com.android.internal.os.BatteryStatsHelper.refreshStats(BatteryStatsHelper.java:296)
at com.example.administrator.vhtest.MainActivity.onCreate(MainActivity.java:73)
答案 0 :(得分:0)
您无法获得此权限。谷歌正在逐步关闭每个新版本对私有系统API的访问权限。 API 23中引入的权限模型是使这种过程成为可能的关键和起点。
您的应用程序必须是系统应用程序(使用与系统应用程序相同的证书进行签名)才能省略SecurityException
。
如果您想知道如何省略它并使其仅在模拟器设备上工作,请查看TestButler项目。他们有一个有趣的approach。