¿Hay alguna manera fácil de recibir notificaciones cuando la alimentación USB o CA está conectada a un teléfono Android?¿Cómo detectar el estado conectado de energía?
Respuesta
Configure un BroadcastReceiver
para ACTION_BATTERY_CHANGED
. Un Intent
extra le dirá cuál es el estado de carga: consulte BatteryManager
para obtener más información.
En AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".receiver.PlugInControlReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
</application>
En Código
public class PlugInControlReceiver extends BroadcastReceiver {
public void onReceive(Context context , Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_POWER_CONNECTED)) {
// Do something when power connected
}
else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
// Do something when power disconnected
}
}
}
Tenga en cuenta que el método onReceive() debe estar en la clase PlugInControlReceiver que extiende BroadcastReceiver. –
Gracias por su amable explicación @OdedBreiner –
pero la solución anterior no funciona para teléfonos móviles VIVO y OPPO –
Otra cosa que debe comprobar si hay errores en el manifiesto ---> aplicación. Si luego hace clic en el campo que muestra el error y simplemente hace clic en el enlace "Nombre" , aparece el cuadro de diálogo para agregar una clase. agregue la clase y en la clase copie el código de on receive. Ese es el código anterior que debe copiarse en el archivo de clase, no en la actividad principal. Gracias Pzycoderz
otra forma está utilizando el administrador de la batería. i utilizable para esta API> = 21
public class PowerUtil {
public static boolean isConnected(Context context) {
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
return plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB;
}
}
Aquí hay otra manera de sondear la información:
leer los valores aquí: ex.
a través de la cáscara androide:
cat /sys/class/power_supply/usb/online
1 = conectado, 0 = no. Refleja el estado de la conexión USB.
cat/sys/class/power_supply/ac/línea
1 = conectado, 0 = no. Refleja el estado de la conexión de CA.
Utilizando ambos elementos juntos, creo que indicarán si el dispositivo está recibiendo alimentación o no. No estoy seguro si la ubicación es la misma para todos los dispositivos. Encontré la misma ubicación en Android 7+ y 5+, en una tableta Samsung y en un dispositivo RockChip.
- 1. USB estado de energía
- 2. Detectando el estado de la red (conectado - desconectado) en C#
- 3. Cómo detectar la región de menor energía en una Imagen
- 4. Cómo detectar el estado HTTP desde JavaScript
- 5. Detectar si el depurador está conectado en VB6
- 6. ¿Cómo obtener energía eléctrica del conector para el teléfono principal?
- 7. Cómo detectar el estado del mouse en Qt sin MouseEvent
- 8. ¿Cómo eliminar el bucle en el cálculo de la energía?
- 9. Detectar usuario conectado en una computadora usando Java
- 10. SignalR: detectar estado de conexión en el cliente
- 11. ¿El operador de energía en Java?
- 12. opción PHP o JavaScript para detectar el estado de AIM
- 13. Cómo detectar toques en la barra de estado
- 14. Cómo obtener el uso de energía en una Mac
- 15. Android App consumo de energía
- 16. Detectar si UITableView está en el estado beginUpdates/endUpdates
- 17. ¿Cómo verificar el estado de conexión del dispositivo HDMI en Android?
- 18. ¿Cómo comprobar que el usuario está "conectado"?
- 19. cómo encontrar el componente conectado dinámicamente
- 20. Posibilidades para reducir el consumo de energía con aplicaciones cocos2d
- 21. Cómo detectar el estado presionada de la tecla Mayús al mover el mouse
- 22. ¿Podemos optimizar el código para reducir el consumo de energía?
- 23. Cómo detectar el navegador minimizar y maximizar el estado en javascript
- 24. Detectar si el dispositivo se está cargando
- 25. ¿Cómo puedo detectar si sys.stdout está conectado al terminal o no?
- 26. ¿Cómo puedo detectar si stdout está conectado a un tty en Perl?
- 27. Codificación de software eficiente de energía
- 28. En Android, se muestra cómo detectar un cuadro de diálogo del sistema (opciones de energía, aplicaciones recientes, batería baja ...)?
- 29. Uso de C# para mostrar el punto de energía
- 30. Monitoree el uso de energía de las aplicaciones
Gracias! No hay forma de sondear esta información? – NPike
@NPike: vea los comentarios sobre esta [respuesta aceptada] (http://stackoverflow.com/questions/3997289/get-temperature-of-battery-on-android/3997349#3997349) para otra pregunta - uno puede obtener el estado actual utilizando el método que se muestra allí sin suscribirse. –
Sea preciso: intención ix = main.registerReceiver (null, nuevo IntentFilter (Intent.ACTION_BATTERY_CHANGED)); \t \t \t \t boolean plugged = ix! = Null && ix.getIntExtra ("enchufado", 0)! = 0; – mdiener