Your source code is now downloading. If does not start download please wait for 10 seconds

Your source code is now downloading. If does not start download please wait for 10 seconds

Objective The main objective of this post is to help you to get all the details of the Battery in Android.

You will get Final Output:

Step 1 registerBatteryLevelReceiver() method

First we need Intent Filter. Which response with Battery status change. Create New Method named registerBatteryLevelReceiver() into MainActivity class and call this method into onCreate(). And also add textview into Layout File for display the Battery data.

private void registerBatteryLevelReceiver() { IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(battery_receiver, filter); }

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textBatteryLevel = (TextView) findViewById(R.id.txtBatteryInfo); registerBatteryLevelReceiver(); }

Step 2 onReceive() method

Then we need Broadcast Receiver for receiving data with Battery Status change. Past Following code outside the onCreate() Method.

private BroadcastReceiver battery_receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { boolean isPresent = intent.getBooleanExtra("present", false); String technology = intent.getStringExtra("technology"); int plugged = intent.getIntExtra("plugged", -1); int scale = intent.getIntExtra("scale", -1); int health = intent.getIntExtra("health", 0); int status = intent.getIntExtra("status", 0); int rawlevel = intent.getIntExtra("level", -1); int voltage = intent.getIntExtra("voltage", 0); int temperature = intent.getIntExtra("temperature", 0); int level = 0; Bundle bundle = intent.getExtras(); Log.i("BatteryLevel", bundle.toString()); if (isPresent) { if (rawlevel >= 0 && scale > 0) { level = (rawlevel * 100) / scale; } String info = "Battery Level: " + level + "%

"; info += ("Technology: " + technology + "

"); info += ("Plugged: " + getPlugTypeString(plugged) + "

"); info += ("Health: " + getHealthString(health) + "

"); info += ("Status: " + getStatusString(status) + "

"); info += ("Voltage: " + voltage + "

"); info += ("Temperature: " + temperature + "

"); setBatteryLevelText(info + "



" + bundle.toString()); } else { setBatteryLevelText("Battery not present!!!"); } } };

Step 3 MainActivity.java

Now we add Three new Method into MainActivity class:

getPlugTypeString() Used for Charging Type. getHealthString() Used for Health Type. getStatusString() Used for Battery Status.

3.1 Plug Type

private String getPlugTypeString(int plugged) { String plugType = "Unknown"; switch (plugged) { case BatteryManager.BATTERY_PLUGGED_AC: plugType = "AC"; break; case BatteryManager.BATTERY_PLUGGED_USB: plugType = "USB"; break; } return plugType; } 3.2 Health Type private String getHealthString(int health) { String healthString = "Unknown"; switch (health) { case BatteryManager.BATTERY_HEALTH_DEAD: healthString = "Dead"; break; case BatteryManager.BATTERY_HEALTH_GOOD: healthString = "Good"; break; case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE: healthString = "Over Voltage"; break; case BatteryManager.BATTERY_HEALTH_OVERHEAT: healthString = "Over Heat"; break; case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE: healthString = "Failure"; break; } return healthString; } 3.3 Battery Status private String getStatusString(int status) { String statusString = "Unknown"; switch (status) { case BatteryManager.BATTERY_STATUS_CHARGING: statusString = "Charging"; break; case BatteryManager.BATTERY_STATUS_DISCHARGING: statusString = "Discharging"; break; case BatteryManager.BATTERY_STATUS_FULL: statusString = "Full"; break; case BatteryManager.BATTERY_STATUS_NOT_CHARGING: statusString = "Not Charging"; break; } return statusString; } Step 4 setBatteryLevelText() method Finally we need to set Battery data in textview. private void setBatteryLevelText(String text) { textBatteryLevel.setText(text); }

For more details go on following links:

I hope you enjoy this tutorial and it would be helpful to you.

Got an Idea of Android App Development? What are you still waiting for? Contact us now and see the Idea live soon. Our company has been named as one of the best Android App Development Company in India.