如图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使用情况。


更多相关文章

  1. Android中关于SQLite数据库的一些知识
  2. Android之ListActivity(一):布局与数据绑定
  3. Android(安卓)LogCat使用详解
  4. Android-使用AutoCompleteTextView进行动态匹配
  5. 老罗Android开发视频教程_基于JavaSE开发(适合Android初学者菜鸟
  6. android中AudioRecord使用详解
  7. OpenAL播放pcm或wav数据流-windows/ios/android(一)
  8. Android的数据存储形式
  9. Android开发:MPAndroidChart的配置和使用

随机推荐

  1. Android(安卓)耗时代码(ANR)的查找检测和
  2. android JNI c/c++调用java 无需新建虚拟
  3. 开发环境的搭建(Eclipse SDK jdk ADT)
  4. android 模拟器AVD方向键无法使用的解决
  5. Android官方命令深入分析之etc1tool
  6. 在Android中加入抓屏软件fbdump
  7. Android中刷新界面的二种方法
  8. View.VISIBLE、INVISIBLE、GONE的区别(你
  9. [置顶] 使用ContentProvider共享数据
  10. TraceView工具如何使用