Je travaille sur un projet androïde où je suis inscris un récepteur de radiodiffusion dans une classe qui étend BroadcastReceiver qui reçoit des intentions pour ACTION_POWER_CONNECTED
, ACTION_POWER_DISCONNECTED
et ACTION_SCREEN_OFF
.Vérifier si l'alimentation est connecté ou non sur Android
Lorsque ces diverses intentions sont reçues, il appelle alors les fonctions d'une autre classe qui s'étend Service
.
Lorsqu'il reçoit le ACTION_POWER_CONNECTED
, il appelle également une fonction appelée isPowerConnected
qui est supposée vérifier si l'alimentation est connectée et sinon elle active le WakeLock.
Le problème que j'ai est quand j'exécute la fonction isPowerConnected
il semble fonctionner la première fois mais tous les temps, il reçoit:
android.content.ReceiverCallNotAllowedException: composants IntentReceiver ne sont pas autorisés à inscrivez-vous pour recevoir des intentions.
Je n'ai aucune idée de comment je peux résoudre ce problème. Voici le code de isPowerConnected.
public boolean isPowerConnected()
{
int pluggedIn = -1;
try
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
pluggedIn = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
}
catch (Exception ex)
{
Log.e("IsPowerConnected", ex.toString());
}
return pluggedIn == BatteryManager.BATTERY_PLUGGED_AC || pluggedIn == BatteryManager.BATTERY_PLUGGED_USB;
}
Merci pour toute aide que vous pouvez fournir.
Si l'on vous dit que vous venez de vous connecter, pourquoi voulez-vous vérifier si vous êtes à nouveau branché? Vous pouvez également vous enregistrer pour 'ACTION_POWER_DISCONNECTED' et gérer vous-même l'état –