Как сканировать IBeacon для определенного c UUID в фоновом режиме, даже если приложение убито в Android Oreo или более поздней версии? - PullRequest
1 голос
/ 11 июля 2020

Я хочу просканировать IBeacon для определенного c UUID в фоновом режиме, даже если приложение убито в Android Oreo или более поздней версии. Есть ли какой-нибудь метод или демонстрация? Если используется Android Beacon Library , как указать конкретный c UUID? Спасибо!

1 Ответ

0 голосов
/ 11 июля 2020

Да, как правило, обнаруживать маяки можно после завершения работы приложения на Android с некоторыми ограничениями. Библиотека маячков Android имеет встроенную эту функцию, и подробности описаны здесь . Убедитесь, что вы понимаете ограничения, описанные в документации. Обнаружение после отключения приложения не происходит мгновенно и обычно занимает до 25 минут на Android 8+ устройствах, но это редко является проблемой вне тестирования разработчика . Просто не совершайте ошибку, убивая приложение, сразу же включая маячок, а затем думая, что оно не работает, потому что вы не получаете уведомление сразу. Вы должны подождать.

Библиотека справочное приложение демонстрирует эту способность. Эта ссылка выполняет поиск любого маяка, но ее легко изменить для поиска только определенного c UUID. Для этого просто измените код ниже.

From:

        // wake up the app when a beacon is seen
        Region region = new Region("backgroundRegion",
                null, null, null);
        regionBootstrap = new RegionBootstrap(this, region);

To:

        // wake up the app when a beacon is seen
        Region region = new Region("backgroundRegion",
                "2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6", null, null);
        regionBootstrap = new RegionBootstrap(this, region);

Заменив 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 своим ProximityUUID.

...