2

BatteryManager最新の Google フォン (Nexus 6 / Android 5.1.1) を使用しており、新しいAPIを使用しようとしました。

getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER)

が返さLong.MIN_VALUEれました。これは、デバイスがこのプロパティをサポートしていないことを意味します。公式ドキュメントから、デバイスはこのプロパティをサポートするはず
なので、意味がありません。

次のコードを使用して、このプロパティをテストしました。何か不足していますか?

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BatteryManager bm = (BatteryManager)this.getSystemService(Context.BATTERY_SERVICE);
        long energyCounter = bm.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
    }
}
4

1 に答える 1

0

adb shell で/sys/class/power_supplyパスを確認できます。

バッテリー情報に関連するフォルダーが表示されるはずです。フォルダ名はデバイスごとに異なります。関連するフォルダに移動します。

私の場合、それは/sys/class/power_supply/batteryです。(銀河S4)

cat ueventまたはを使用しcat related_fileます。次に、バッテリ ドライバが探している情報について通知するかどうかを確認できるはずです。

ノート:

Android は、バッテリー ドライバーが提供するファイルからサポートされている値を読み取ることのみを担当します。マイクロアンペアとしてのバッテリー残量の計算は、バッテリードライバーのソースコードで実行されています。ドライバーが情報を提供しない場合、Android は情報を取得できません。

例えば;

shell@ja3g:/ $ cd /sys/class/power_supply/battery
shell@ja3g:/sys/class/power_supply/battery $ cat uevent
POWER_SUPPLY_NAME=battery
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_CHARGE_TYPE=Fast
POWER_SUPPLY_HEALTH=Good
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=4
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_NOW=4211000
POWER_SUPPLY_VOLTAGE_AVG=4211000
POWER_SUPPLY_CURRENT_NOW=360
POWER_SUPPLY_CURRENT_AVG=360
POWER_SUPPLY_CHARGE_NOW=1
POWER_SUPPLY_CAPACITY=87
POWER_SUPPLY_TEMP=315
POWER_SUPPLY_TEMP_AMBIENT=-250

shell@ja3g:/sys/class/power_supply/battery $ cat capacity
87

POWER_SUPPLY_CAPACITY=87 は、バッテリー ドライバーが残りのエネルギーのパーセンテージを 87 として計算し、このフォルダーの容量ファイルに書き込むことを意味します。Android はこのファイルから読み取り、バッテリーのパーセンテージを 87 と表示します。それはすべてドライバーに関するものです。


オプションで、

BatteryManager.BATTERY_PROPERTY_CURRENT_NOWデバイスの current_now ファイルから読み取るアプリがあります。ファイルの場所はデバイスごとに異なります。

私は Vestel Liva Android 5.1 電話で作業しています。私の場合、current_now ファイル パスは次のとおりです。

/sys/devices/soc.0/qpnp-vm-bms-ffffffc073455400/power_supply/bms/current_now

プロジェクトのソース コードへのリンクは次のとおりです: CurrentWidget

おそらく、デバイスに関連するファイルを見つけることができますBatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER

お役に立てれば、

乾杯

于 2015-07-29T14:45:12.197 に答える