HiddenParts.
HiddenParts.

Reputation: 23

Android: How to get Battery level status more accurately?

I want to get android battery info with more accuracy.

I've found some code which gives battery level and scale but it isn't helping me out much.

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

I need more information that this. I need battery level with upto 2 places decimal accuracy.

P.S. I saw route '/sys/class/power_supply/battery/'. but i didn't find info which I want.

Upvotes: 2

Views: 1746

Answers (1)

deepak kishore
deepak kishore

Reputation: 31

Try this its working for me

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);
}

Upvotes: 1

Related Questions