Я разработал приложение для Android Ble, состоящее из трех видов деятельности и одного сервиса: - первый для сканирования устройства - второй для подключения к устройству - третий для записи результата связи на экране - внутри службы есть некоторые функции для подключения к устройству, для проверки соединения, для автоматического повторного подключения и т. д., и эта услуга является запущенной службой и привязана к каждому действию (первое приложение запускает эту услугу)службы и три деятельности, начать сервис является правильным способом?
В каком-то учебнике я видел что в этом случае используется не запущенная служба, а связанная. Но мне интересно, когда мы переключаемся между двумя действиями, если служба не «запущена», существует ли риск того, что служба ower может быть закрыта из системы, потому что при переключении между действиями служба привязана ничем?
Вы кристально чистый спасибо! Лучший способ дать возможность всем приложениям общаться с одним и тем же устройством? Я должен как-то сохранить в памяти ссылку на устройство. Но на данный момент я не понимаю, как в примере с разработчиком Android вы связали, что они используют услугу. Почему они не делают этого в своей деятельности? – aeroxr1
В примере используется служба, чтобы показать, как служба может использоваться для сканирования BLE. Это также показывает, что BluetoothDevice является Parcelable. –
Вы можете сохранить свой BluetoothDevice в пакет, переданный Activity.onSaveInstanceState. Сохранение BluetoothDevice на диск - плохая идея. Когда приложение выключится, вы должны предположить, что любой BluetoothDevice недействителен. Вместо этого сканируйте новый. Вы можете отфильтровать свое сканирование с помощью BluetoothLeScanner.startScan (список, ScanSettings, ScanCallback). Однако UUID может сохраняться (строка). –