gpt4 book ai didi

android - Android 上/sys/class/power_supply 中的多个电池条目

转载 作者:搜寻专家 更新时间:2023-11-01 07:57:14 25 4
gpt4 key购买 nike

我正在尝试从 NDK 应用读取电池信息。我知道完成此操作的唯一方法是读取 /sys/class/power_supply 中的值。我的困难是我找到了多个类型为“电池”的条目,但我不知道该使用哪一个。

在装有 KitKat 4.4.4 的 Nexus 10 上,我看到了:

$ ls /sys/class/power_supply
ds2784-fuelgauge
manta-battery
smb347-battery
# other non-battery entries

所有三个都使用 type=Battery。例如:

$ cat /sys/class/power_supply/ds2784-fuelgauge/type
Battery

在 Android BatteryManager 代码中,他们只是遍历电池设备并获取第一个具有他们想要的条目 (http://androidxref.com/4.4.4_r1/xref/system/core/healthd/BatteryMonitor.cpp) 的设备。但是,在我的 Nexus 10 上,它们具有不同的值。例如,对于 ds2784-fuelgauge/voltage_nowsmb347-battery/voltage_now:

$ cat ds2784-fuelgauge/voltage_now
4153100
$ cat smb347-battery/voltage_now
4300000

ds2784-fuelgauge/voltage_now 似乎定期更新(例如,当我开始计算繁重的任务时它会更改),但 smb347-battery/voltage_now 似乎是固定的。当我比较 ds2784-fuelgauge/current_nowsmb347-battery/current_now 时,我看到了类似的效果。

我的问题是:

  1. 为什么这里有多个 type=battery 的条目?
  2. 我如何以一般方式区分它们?
  3. 我应该使用哪一个?

编辑

  • 修复了 voltage_now 文件名中的拼写错误
  • 强调所有三个设备的类型=电池

最佳答案

在 Android 设备上,您可能拥有多个电池,例如 RTC 或其他外围设备的备用电池。您是否已经 cat 所有 3 个 sysfs 条目的类型文件?对于所有 3 个,您都得到“电池”?

考虑到 Android 需要电池的几个参数(见下文),我可能猜想它们在您获得的那 3 个 sysfs 文件中是分开的。

例如,电量计是读取流出/流入电池的电流并计算剩余容量的硬件组件,因此从中读取容量文件应该会给出 %,但电压可能是从另一个文件读取的.

电池参数(即:/sys/class/power_supply/my_batt/status):

  • 状态:正在充电、正在放电、未充电、充满、未知
  • 运行状况(字符串):寒冷、死亡、良好、过热、过电压、未指定故障、未知
  • 存在(整数):存在时为 1
  • 容量(整数):97 表示 97%
  • voltage_now(以 uV 为单位)或 batt_volt(以 mV 为单位):4205000 for 4205000 uV = 4.205 V
  • temp 或 batt_temp(单位为 °C 的十分之一):305 表示 30.5°C
  • 技术(字符串):锂 ionic

关于android - Android 上/sys/class/power_supply 中的多个电池条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com