Je ne peux pas recevoir la diffusion sur le changement d'état de la batterie?
Je suis d'avoir exactement le même problème que ce post: Batterie de récepteur de radiodiffusion ne fonctionne pas. Mais il semble que personne n'a répondu à cette question.
Voici mon 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();
}
Et voici mon 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>
J'ai également ajouté cette ligne dans le manifeste:
<uses-permission android:name="android.permission.BATTERY_STATS"/>
Mais toujours pas de succès!
Je serais vraiment reconnaissant si quelqu'un pouvait me conseiller ce que je fais de mal.
source d'informationauteur Farzan Majdani
Vous devez vous connecter pour publier un commentaire.
De la documentation pour ACTION_BATTERY_CHANGED:
Là vous l'avez: vous devez vous inscrire à partir de votre code Java.
J'ai simplement suivi l'Android Developer Guide sur La surveillance du Niveau de la Batterie et l'État de la Charge et connut un succès immédiat. Si BatteryLevelReceiver est-il du propre de la classe alors je vous recommande d':
Plus
Je suis prêt à deviner que vous avez écrit BatteryLevelReceiver comme une classe imbriquée dans ReceversAndServices. Selon Récepteur pour l'intérieur de la classe dans Androidvous ne pouvez pas le faire avec les non-classes statiques. Vous pourriez faire BatteryLevelReceiver statique de la classe et inscrire le récepteur dans onResume(), mais alors votre application doit être en marche pour intercepter les événements... Passer votre récepteur à une catégorie distincte et enregistrer ces Intentions:
(Pas BATTERY_CHANGED comme le Darshan de Calcul souligné.)
Assurez-vous d'avoir de la batterie du récepteur de classe pas comme une sous-classe d'une autre, mais comme une salle de classe dans votre projet.
Également essayer d'utiliser le Contexte.registerReceiver() la méthode de manière explicite dans le code, et ne pas oublier d'annuler son inscription: http://developer.android.com/reference/android/content/Context.html#registerReceiver%28android.content.BroadcastReceiver,%20android.content.IntentFilter%29