Android app获取android.permission.BATTERY_STATS权限
16lz
2021-01-23
记录下
1.手机root
2.Android工程AndroidManifest.xml声明
3.adb shell pm grant com.asksven.betterbatterystats android.permission.BATTERY_STATS
反射调用获取BatterStats信息
Class<?> mBatteryInfoClazz = Class.forName("com.android.internal.app.IBatteryStats$Stub"); Class<?> serviceManagerClazz = Class.forName("android.os.ServiceManager"); Method getSevice = serviceManagerClazz.getMethod("getService", String.class); IBinder binder = ((IBinder) getSevice.invoke(null, "batterystats")); Log.e("batteryinfo","binder is " + (binder == null ? "null" : "not null")); Method asInterface = mBatteryInfoClazz.getMethod("asInterface",new Class[]{IBinder.class}); Object object = asInterface.invoke(null,binder); Method getStatistics = object.getClass().getMethod("getStatistics"); byte[] data = ((byte[]) getStatistics.invoke(object)); Log.e("batteryinfo",object.getClass().getName() + " data size " + data.length);
https://github.com/asksven/BetterBatteryStats/issues/716
更多相关文章
- Android 反射获取私有方法,成员变量
- Android 反射获得控件对象
- android反射方式访问内部类成员
- Android主流IOC框架浅析(Java注解反射原理)
- android通过反射来获取系统属性SystemProperties
- 4.11笔记 android database打开方式,ios反射
- Android反射机制实例
- Android获取设备信息(利用反射)
- android中通过"反射"的到android隐藏的API