Estoy teniendo exactamente el mismo problema que esta publicación: Battery broadcast receiver doesn't work. Pero parece que nadie ha respondido esa pregunta.No puedo recibir la transmisión en el cambio de estado de la batería?
Aquí es mi BroadcastReceiver:
public class BatteryLevelReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.v("plugg", "plug change fired");
Toast.makeText(context, " plug change fired", Toast.LENGTH_LONG).show();
}
Y aquí es mi AndroidManifest.xml:
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>
<receiver android:name=".ReceversAndServices.BatteryLevelReceiver">
<intent-filter android:priority="900">
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
También he añadido esta línea al manifiesto:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
Pero todavía ¡sin éxito!
Realmente apreciaría si alguien pudiera aconsejarme qué estoy haciendo mal.
gracias Darshan, pero quiero ejecutar un servicio solo cuando la batería está baja o está enchufada. Podría decir por favor ¿Cómo debería hacer eso? –
Si esos son los únicos dos eventos que te importan, entonces no necesitas 'ACTION_BATTERY_CHANGED' en absoluto, y estarás bien registrándote en el manifiesto. La transmisión para enchufar es 'ACTION_POWER_CONNECTED'. Ambas acciones pueden estar bajo el mismo 'filtro de intención', no es necesario establecer una prioridad, y no necesita el permiso' BATTERY_STATS'. –