Reputation: 23
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
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