Я работаю над приложением BLE (используя библиотеку RxAndroidBle!), которое может подключаться к нескольким устройствам для какое-то время. В последнее время бизнес-требования немного изменились, и я должен сохранять связь со всеми устройствами на протяжении всего приложения. Что я имею в виду после того, как я подключился к устройству, я должен поддерживать стабильное соединение на всех экранах, и если я отключился, я должен сообщить об этом пользователю.
До сих пор у меня была своего рода BleManager
, которая была абстракцией над RxBleClient
, и BleDevice
, которая была абстракцией над RxBleDevice
. Оба этих класса были покрыты некоторыми реактивными интерфейсами, они были внедрены в соответствующие модули, и вся их подписка и отписка выполнялись в этих конкретных модулях экрана. Однако теперь я должен изменить подход, потому что мне нужно постоянно поддерживать связь.
Возникает вопрос: Есть ли лучший способ сохранить стабильное соединение с устройством Ble, кроме создания его в службе Android и сохранения подписок в этой службе? Все примеры/учебники Ble поддерживают это соединение. сервис, но я не большой поклонник этого решения, так как оно также не очень хорошо вписывается в мою архитектуру. Мне было интересно, могу ли я как-то связать это с экземпляром приложения или что-то в этом роде. Любая идея, кроме обслуживания, будет очень оценена.