Реклама библиотеки Android Beacon всегда включена

У меня проблема с рекламным режимом библиотеки Android Beacon. Через несколько часов служба, отвечающая за рекламу, перестает отправлять пакеты BLE.

Я работаю в проекте, где рекламный сервис должен постоянно работать на умных часах (умных часах с поддержкой Android Wear). Важно, чтобы приложение не было постоянно видно пользователю, но его можно было отодвинуть в фоновый режим. Если ответственная служба Android останавливается на короткое время, это не так уж плохо, но ее следует перезапустить как можно скорее.

Как этого добиться? Я уже читал о сервисе Foreground для сканирования, но, похоже, его не существует для рекламы.

Я использовал этот пример кода для службы рекламы iBeacon: https://altbeacon.github.io/android-beacon-library/beacon-transmitter.html

заранее спасибо


person Hackzerhacker    schedule 02.09.2019    source источник


Ответы (1)


На Android 8+ приложение должно быть запущено в той или иной форме, чтобы продолжать рекламировать через BLE. Единственный способ поддерживать работу приложения на Android 8+ – это создать службу переднего плана.

Библиотека Android Beacon предоставляет инструкции по созданию службы переднего плана для целью сканирования маяков. В качестве побочного эффекта эта же служба переднего плана также будет поддерживать работу передатчика.

Вы также можете просто создать свою собственную службу переднего плана с помощью Android API. Служба не даже нужно что-то делать - он просто должен продолжать работать, чтобы операционная система не отключила ваш передатчик.

Важное примечание: некоторые китайские ПЗУ производства Huawei и OPPO имеют нестандартные модификации, которые будут закрыть сервисы переднего плана, если приложения не внесены в белый список.

person davidgyoung    schedule 03.09.2019