1

Androidのバッテリー情報をより正確に取得したい。

バッテリーのレベルとスケールを示すコードを見つけましたが、あまり役に立ちません。

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

これ以上の情報が必要です。小数点以下 2 桁までのバッテリー レベルが必要です。

PSルート「/sys/class/power_supply/battery/」を見ました。しかし、欲しい情報が見つかりませんでした。

4

1 に答える 1

1

これを試してみてください

private void getBatteryPercentage() {
    BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            context.unregisterReceiver(this);
            int currentLevel = intent.getIntExtra(
                    BatteryManager.EXTRA_LEVEL, -1);
            int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
            int level = -1;
            if (currentLevel >= 0 && scale > 0) {
                level = (currentLevel * 100) / scale;
            }
    Toast.makeText(getApplicationContext(), "Battery Level Remaining: " + level
                    + "%", Toast.LENGTH_LONG).show();

        }
    };
    IntentFilter batteryLevelFilter = new IntentFilter(
            Intent.ACTION_BATTERY_CHANGED);
    registerReceiver(batteryLevelReceiver, batteryLevelFilter);
}
于 2015-01-27T07:24:14.737 に答える