要获取手机的电量 我们可以从Android 电源配置文件( platform/frameworks/base/core/res/res/xml/power_profile.xml)读取电池电量,此文件是由设备制造商写入的 。
此文件Android对应的类为com.android.internal.os.PowerProfile.java 我们可以通过反射来获取:
public double getBatteryCapacity(Context context) {
Class<?> powerProfile= null;
try {
powerProfile = Class.forName("com.android.internal.os.PowerProfile");
Constructor constructor = powerProfile.getConstructor(new Class[]{Context.class});
Object obj = constructor.newInstance(getActivity());
Method method = powerProfile.getMethod("getBatteryCapacity");
return (double) method.invoke(obj);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (java.lang.InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return 0;
}