Mam aplikację dla systemu Android, który wykorzystuje API Awareness do ustawiania ogrodzenia, gdy zestaw słuchawkowy jest podłączonyAwareness API & Android O użyciu BroadcastReceiver
ja wdrożyły AwarenessFence przy użyciu kodu podobnie jak w przykładach na stronie:. https://developers.google.com/awareness/android-api/fence-register .
mam PendingIntent zdefiniowany jako:
PendingIntent.getBroadcast(context, 0, new Intent("my.application.packageFENCE_RECEIVER_ACTION"), 0)
Wtedy w moim pliku AndroidManifest.xml mam
<receiver android:name=".fence.FenceDetector$MyFenceReceiver">
<intent-filter>
<action android:name="my.application.packageFENCE_RECEIVER_ACTION" />
</intent-filter>
te zostały zgłoszone w manifeście z uwagi na fakt, że Chcę odbierać audycje, nawet gdy moja aplikacja jest w tle.
To wszystko działało dobrze na Androidzie 7.0 i poniżej, ale gdy uruchomię to na Androidzie 8.0 pojawia się błąd:
BroadcastQueue: Background execution not allowed: receiving Intent { act=my.application.packageFENCE_RECEIVER_ACTION
Zakładam, to ze względu na nowe ograniczenia dla realizacji tła Android O .
czy ktoś może mi powiedzieć jak zarejestrować odbiornik emisji, która może wysłuchać świadomości ogrodzenia wyzwala gdy w tle na urządzenia z systemem Android API 26.
Daj mi znać, jeśli istnieje coś, co jest jasne, czy Muszę to rozwinąć meting.
Z góry dziękuję
Przetestowany i sprawdzony. To powinno być zaakceptowaną odpowiedzią, – Simon
Masz rację Simon. Właśnie to przetestowałem i mogę potwierdzić, że działa. Jest to teraz zaakceptowana odpowiedź. –
Pamiętaj, że musisz jeszcze zarejestrować odbiornik w manifeście, na przykład: –