安卓怎样获取电池容量?是多少mAh不是百分比

安卓怎样获取电池容量?是多少mAh不是百分比,求大神指导。。。。。。。。。。。。。。。。。。。。。。

http://xdwangiflytek.iteye.com/blog/1707106
http://233.io/article/1029900.html

http://blog.csdn.net/liushuaikobe/article/details/7416431

http://blog.csdn.net/maqiutian/article/details/7246949

没法获取,因为即便是同一个手机,也可以搭配不同容量的电池。
就算同一个电池,也因为使用寿命的关系,容量逐步递减。
事实上就是电量百分比计算,也是根据电流和电压大致推算出来的。再换算容量,误差就很大了。
要想知道电池的容量,只有通过专业仪器进行放电实验才能得知,手机不是这样的仪器,硬件上根本无法知道电池的容量。

如果你的客户实在太楞,你也有一个捣糨糊的办法。你可以大致把手机分为三类,大屏幕(6寸以上),中屏幕(4~5寸),小屏幕(4以下)
你可以通过屏幕分辨率和处理器类型大致划分下,分别假设这三种设备的电池容量是2500 1500 和1000mha
然后乘以百分比得到剩余容量。我想误差也不会很大。再说哪个用户和你较真呢

/**
 * 获取电池容量 mAh
 * @param context
 * @return
 */
public double getBatteryCapacity(Context context) {
    Object mPowerProfile;
    double batteryCapacity = 0;
    final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";

    try {
        mPowerProfile = Class.forName(POWER_PROFILE_CLASS)
                .getConstructor(Context.class)
                .newInstance(context);

        batteryCapacity = (double) Class
                .forName(POWER_PROFILE_CLASS)
                .getMethod("getBatteryCapacity")
                .invoke(mPowerProfile);

    } catch (Exception e) {
        e.printStackTrace();
    }

    return batteryCapacity;
}