Fragmento de código (code snippet) para obtener si el dispositivo se esta cargando y teniendo en cuenta las diferentes formas de fuente de alimentación que existen en Android, que son las siguientes:
- BatteryManager.BATTERY_PLUGGED_AC La carga del dispositivo es por red eléctrica
- BatteryManager.BATTERY_PLUGGED_USB Se está cargando por toma USB
- BatteryManager.BATTERY_PLUGGED_WIRELESS Carga inalambrica, disponible a partir de JellyBean
Función isPlugged()
Con la función isPlugged se puede obtener si la batería del dispositivo se está cargando des de una fuente de alimentación externa
public static boolean isPlugged(Context context) {
boolean isPlugged= false;
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
isPlugged = plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB;
if (VERSION.SDK_INT > VERSION_CODES.JELLY_BEAN) {
isPlugged = isPlugged || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS;
}
return isPlugged;
}
Su uso
Su implementación es solo pasar el contexto a la función y devuelve true o false dependiendo si la batería se está cargando.
if (isPlugged(this) {
//Se está cargando
} else {
//No se está cargando
}
Extraído de ese StackOverflow