2017-08-09 7 views
0

私はBQ27531バッテリーガスゲージをi.MX6 SoMに統合しようとしています。私はドライバをロードし、すべてがsysfs上でうまくいくように見えます。 cat /sys/bus/i2c/devices/2-0055/power_supply/bq27531-0/tempを実行すると、正しい値247(24.7 ° Cを意味する)が得られます。BatteryManagerが温度に対して間違った値を返すのはなぜですか?

今、私はAndroidシステムの価値を得たいと思います。これは私の温度測定値を与える必要がありますが、それは424(42.4 ° C)を返している

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

:私は基本的に呼び出すシンプルなアプリを書きました。なぜ温度値が間違っていますか?バッテリーが室温付近にあると確信しています。

+0

で定義されています。彼らは電気をたくさん提供するときに熱を発生します。あなたの携帯電話が使用後に熱くなったことをいつまでも感じましたか?それがバッテリーです。 42Cは非常に合理的な電池温度です。 –

+0

424の値がどこから来たのかわかりません。私が手を電池に乗せて再び 'cat'を動かすと、値は24.7から24.9に変わります。私が欲しいのは、その読書を運転手から得ることです。 –

+0

あなたのマネージャは正しいドライバからこの値を取得し、スタブしていないことを確かめていますか? – once2go

答えて

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 
関連する問題