Я недавно создал приложение для Android, которое связывается с аппаратным устройством через Bluetooth. В моем приложении у меня есть много классов Activity, которые взаимодействуют через соединение, и приложение также выполняет непрерывную запись данных из соединения также в фоновом режиме. Поэтому, надеюсь, я смогу здесь помочь. (Это моя первая попытка опубликовать ответ в StackOverflow, поэтому будьте осторожны со мной.)
В моем приложении я прежде всего поместил весь код Bluetooth в отдельный выделенный файл класса (который я называю BluetoothIF.java). Конструктор в этом классе выполняет базовую инициализацию адаптера, и для таких задач, как создание соединений и т. Д., Предоставляются дополнительные методы. Он содержит классы Runnable для установления соединения и последующей передачи / приема по установленному соединению. (По сути, это основано на примере BluetoothChat.)
Мне не нужно выполнять громадный объем связи через соединение Bluetooth, и мне также нужно было иметь Службу в фоновом режиме для непрерывного мониторинга и регистрации данных из соединения, как упоминалось ранее. Итак, я создал свой BluetoothIF в Сервисе. Любые классы Activity, которым необходимо обмениваться данными через существующее соединение Bluetooth, делают это в моем приложении, обмениваясь сообщениями со Службой.
В качестве альтернативы, если вам не нужно использовать Службу, возможно, вам следует совместно использовать экземпляр объекта Bluetooth среди Активов, используя одноэлементную модель или расширяя класс Application.