В настоящее время я работаю над приложением с периферийным устройством BLE, мое приложение работает как ведущее устройство, а устройство BLE работает как периферийное устройство.
Приложение имеет нижеуказанные случаи использования:
- Приложение должно подключаться и взаимодействовать с устройством BLE, даже если приложение не на переднем плане. (приложение может быть в фоновом режиме или закрыто)
- Как только приложение подключено к устройству BLE, нам нужно получить данные в нашем приложении и обработать их.
- Таким образом, основной вариант использования, который должен быть достигнут, заключается в том, что, как только устройство BLE окажется в диапазоне нашего устройства, оно должно подключиться и связаться с нашим приложением.
тогда как после выхода из зоны действия нашего устройства он должен остановить процесс связи.
Все эти вещи должны хорошо работать, даже если наше приложение находится в фоновом или закрытом состоянии.
Согласно фоновым ограничениям от oreo, указанным в этой ссылке https://developer.android.com/about/versions/oreo/background
Мы не можем использовать сервисы для реализации этого сценария.
В настоящее время мы используем службы переднего плана для достижения желаемого варианта использования, но не уверены, является ли это лучшим подходом для работы.
Пожалуйста, дайте мне знать лучший подход, который может быть использован для достижения вышеупомянутого варианта использования с использованием последней версии Android API.
Примечание: Наше приложение имеет минимальную версию SDK 23 и целевую версию SDK 28