0

BQ27531 バッテリー ガス ゲージを i.MX6 SoM に統合しようとしています。ドライバーをロードしたところ、sysfs ですべて問題ないように見えます。を実行するcat /sys/bus/i2c/devices/2-0055/power_supply/bq27531-0/tempと、正しい値 247 (つまり 24.7°C) が得られます。

今、私は Android システムで値を取得したいと考えています。基本的に呼び出す単純なアプリを作成しました:

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent intent = registerReceiver(null, filter);
int temprature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);

これで温度の測定値が得られるはずですが、424 (42.4°C) が返されます。温度値が間違っているのはなぜですか? バッテリーは室温付近にあると確信しています。

4

1 に答える 1

0

したがって、私のシステムはバッテリーを認識していないことが判明し、424 がデフォルトの「偽の」温度です。で定義されていplatform/system/core/healthdます。

#define POWER_SUPPLY_SUBSYSTEM "power_supply"
#define POWER_SUPPLY_SYSFS_PATH "/sys/class/" POWER_SUPPLY_SUBSYSTEM
#define FAKE_BATTERY_CAPACITY 42
#define FAKE_BATTERY_TEMPERATURE 424
#define ALWAYS_PLUGGED_CAPACITY 100
#define MILLION 1.0e6
#define DEFAULT_VBUS_VOLTAGE 5000000
于 2017-08-14T14:23:48.403 に答える