Android(安卓)4.0 4.2 不能显示电池使用信息
如图bug显示
在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的定义如下:
publicstaticfinalStringPOWER_SCREEN_FULL="screen.full";
在frameworks/base/core/res/res/xml/power_profile.xml
中有<itemname="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使用情况。
更多相关文章
- Android中关于SQLite数据库的一些知识
- Android之ListActivity(一):布局与数据绑定
- Android(安卓)LogCat使用详解
- Android-使用AutoCompleteTextView进行动态匹配
- 老罗Android开发视频教程_基于JavaSE开发(适合Android初学者菜鸟
- android中AudioRecord使用详解
- OpenAL播放pcm或wav数据流-windows/ios/android(一)
- Android的数据存储形式
- Android开发:MPAndroidChart的配置和使用