首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android是如何获得电池百分比的?

Android是如何获得电池百分比的?
EN

Stack Overflow用户
提问于 2015-12-13 16:17:42
回答 1查看 813关注 0票数 0

我正在研究Android中的能源。当我需要通过Android系统的百分比来了解当前的收费状态时,我运行以下函数:

代码语言:javascript
运行
复制
public float getBatteryLevel() {

    Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

    int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

    int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

    return ((float)level / (float)scale) * 100.0f; 
}

但我不知道Android是如何知道电池当前的充电状态并得出结果的?我研究并了解了一些电池测量方法,例如:

  • 电压与电荷状态的关联:http://www.powerstream.com/lithium-ion-charge-voltage.htm
  • 库仑计数

Android是否使用上述任何方法?还是别的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-14 18:23:37

我知道操作系统获取电池(和其他电源)信息的三种主要方式。

  • /proc --这些文件直接绑定到各种操作系统和硬件表。当您访问这些文件时,实际上是在查询OS中这些表的值。不幸的是,它非常依赖于系统,因为它依赖于内核实现。
  • 性能API -这些都是为了解决周围的问题,即缺乏标准化的获取性能信息。虽然有Java实现,但我没有发现任何东西告诉我有android实现。
  • ACPI表 -用于保存信息的标准化OS表。我发现他们比我想的更依赖平台。

访问这些信息的另一种方法是直接从硬件本身访问。可以猜到,这是非常依赖于平台的。它因体系结构而异,甚至包括同一体系结构的不同版本。

关于高级PAPI的另一个注意事项,如PAPI、ACPI表和/proc。即使信息在那里,他们也可以或不可能查询硬件。这都取决于内核和API开发人员是如何实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34253262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档