Check if the Device is Charging in Android and the Power Source.

By | February 20, 2017

Your application peformance should be upto the mark. But it should perform differently not on the front end , but on the back end when it the device is connected to a power source or charging. Charging could be of from USB and from wire cable. When your device is charging itself , it is recommended to update your application settings if any, such as maximizing your refresh rate whenver the device is connected. It can be done as this.


	IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
	// Are we charging / charged? Full or charging. 
	Intent batteryStatus = context.registerReceiver(null, ifilter); 
	// How are we charging? From AC or USB. 
	int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
	int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

Lets see how the complete code look like….

MainActivity


import android.os.BatteryManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;

public class MainActivity extends Activity {
    private BatteryManager battery;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        Intent batteryStatus = registerReceiver(null, ifilter);
        int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
		// Find the charge Source
        boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING 
                               || status == BatteryManager.BATTERY_STATUS_FULL; 
        int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
        boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
        if (usbCharge) {
            Toast.makeText(getApplicationContext(), 
                   "Mobile is charging on USB", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), 
                   "Mobile is charging on AC", Toast.LENGTH_LONG).show();
        }

    }

}

Done.

Send your comments to coderzheaven@gmail.com.

Leave a Reply

Your email address will not be published. Required fields are marked *