J'ai une application Android qui utilise l'API de sensibilisation pour installer une clôture quand un casque est branchéAPI de sensibilisation et O Android en utilisant BroadcastReceiver
J'ai mis en œuvre le code en utilisant AwarenessFence un peu comme dans les exemples à:. https://developers.google.com/awareness/android-api/fence-register .
J'ai un PendingIntent défini comme:
PendingIntent.getBroadcast(context, 0, new Intent("my.application.packageFENCE_RECEIVER_ACTION"), 0)
Puis dans mon dossier AndroidManifest.xml Je
<receiver android:name=".fence.FenceDetector$MyFenceReceiver">
<intent-filter>
<action android:name="my.application.packageFENCE_RECEIVER_ACTION" />
</intent-filter>
Ceci est déclaré dans le manifeste en raison du fait que je Je souhaite recevoir des diffusions même lorsque mon application est en arrière-plan.
Tout cela a bien fonctionné sur Android 7.0 et ci-dessous, mais quand je lance ce sur un Android 8.0 Je reçois l'erreur:
BroadcastQueue: Background execution not allowed: receiving Intent { act=my.application.packageFENCE_RECEIVER_ACTION
Je suppose que cela est dû aux nouvelles restrictions pour l'exécution d'arrière-plan sur Android O .
Quelqu'un peut-il me dire comment enregistrer un récepteur de radiodiffusion qui peut écouter une clôture de sensibilisation se déclenche quand en arrière-plan sur un appareil Android API en cours d'exécution 26.
Laissez-moi savoir s'il y a quelque chose qui ne sait pas ou si J'ai besoin d'élaborer méthing.
Merci à l'avance
Testé et travaillé. Cela devrait être la réponse acceptée, – Simon
Vous avez raison Simon. Je viens de tester cela et peut confirmer que cela fonctionne. C'est maintenant la réponse acceptée. –
Notez que vous devez toujours enregistrer le récepteur dans le manifeste, comme: –