Android 4.0 4.2 不能显示电池使用信息

如图bug显示

Android 4.0 4.2 不能显示电池使用信息_第1张图片

在Linux3.0+Android4.0以及4.2系统上面,启动Android后,在Settings里面的Battery选项上可以监测到电池充电放电及剩余电量等信息,但是界面上总是显示"无法获取电池使用数据"

我看了一下Battery相关的信息,Android实际上都是从/sys/class/power_supply/battery/下读取到的,可以看到如下信息:
capacity
current_now
device
health
power
present
status
subsystem
technology
temp
type
uevent
voltage_now

在Android上层的Java中PowerUsageSummary.java中判断并打印了"无法获取电池使用数据",如下:
if (mPowerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL) < 10) {
            addNotAvailableMessage();
            return;
        }

跟踪代码到PowerProfile.java中,找到了关于PowerProfile的定义如下:
public static final String POWER_SCREEN_FULL = "screen.full";

在frameworks/base/core/res/res/xml/power_profile.xml
中有<item name="screen.full">0.1</item>
所以,在mPowerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL)返回的应该是0.1,<10直接返回了,就显示了“无法获取电池使用数据”的情况了。

解决办法:

我可以直接注释掉:

/*if (mPowerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL) < 10) {
            addNotAvailableMessage();
            return;
        }*/

编译运行后就可以看到电池的使用信息了。

 

或者

更改frameworks/base/core/res/res/xml/power_profile.xml中的screen.full值,具体值就看各个平台的screen使用情况。


你可能感兴趣的:(电池使用信息)