Me gustaría poder detectar si el dispositivo está enchufado o no. Me gustaría poder consultarlo de la misma manera que podemos hacerlo para el estado de conectividad. ¿Es posible o necesito crear un receptor de difusión que escuche los eventos de la batería?Detectando que el dispositivo está enchufado
7
A
Respuesta
20
Aparentemente, el ACTION_BATTERY_CHANGED es una "transmisión fija", lo que significa que puede registrarse y recibirla en cualquier momento después de que se haya emitido. Para obtener el estado conectado, puede hacer algo como:
public void onCreate() {
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
// on AC power
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
// on USB power
} else if (plugged == 0) {
// on battery power
} else {
// intent didnt include extra info
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);
}
Cuestiones relacionadas
- 1. ¿Cómo saber cuándo el dispositivo iOS está enchufado?
- 2. ¿Cómo verifico si un dispositivo USB dado está enchufado?
- 3. Cómo verifico si el escáner está enchufado (C#, .NET TWAIN)
- 4. Detectando que la pila está llena
- 5. Detectando dispositivo de salida en LaTeX
- 6. Detectando si el monitor está apagado
- 7. iPhone - Detectando si el dispositivo tiene una cámara frontal
- 8. Linux de programación: el dispositivo que un archivo está en
- 9. Temporizador Android que funciona cuando el dispositivo está durmiendo
- 10. Detectando si un auricular está conectado a un dispositivo Android o no.
- 11. Cómo saber si el dispositivo está durmiendo
- 12. iOS - detectando si Game Center está deshabilitado
- 13. Detectar si el dispositivo se está cargando
- 14. detectando dónde está iframed mi sitio
- 15. ¿Detectando si se está reproduciendo la música?
- 16. Detectando si el caché de un navegador está lleno
- 17. Coldfusion: Detectando si está siendo ejecutado por el programador
- 18. Detectando cuando el roaming está desactivado en Android
- 19. Detectando si el diálogo de entrada de archivo está abierto
- 20. Detectando si el navegador está navegando a otra página
- 21. Detectando si el disco está en la unidad de DVD
- 22. Detectando un tipo de archivo mimetype en coldfusion que ya está cargado en el servidor
- 23. ¿Cómo sé que mi aplicación está desinstalada del dispositivo ...?
- 24. notificaciones locales que expiran mientras que el dispositivo está apagado, se pierden
- 25. Compruebe si el tiempo frontal está habilitado en el dispositivo
- 26. Detectando si hay claves disponibles en el teclado en pantalla del dispositivo móvil
- 27. ¿Se está creando una clave según el dispositivo en el que se encuentra la clave? (Linux)
- 28. ¿Cómo detectar usando C# si un pendrive está enchufado a un puerto USB?
- 29. Detectando programáticamente si hay una aplicación instalada en el iPhone
- 30. Cómo iniciar una aplicación iphone cuando un accesorio externo está emparejado con BT o enchufado al conector
¡Eso es PERFECTO! ¡Gracias! Lo único que pensé fue agregar 'unregisterReceiver (this);' al método 'onReceive()'. – CaseyB
Me he dado cuenta de que EXTRA_PLUGGED contiene 0 cuando el dispositivo está conectado a la corriente pero la batería está completamente cargada. ¿Hay alguna manera de detectar que todavía esté conectado a la CA para poder ignorar EXTRA_PLUGGED? –