Соединение BLE внезапно прервалось после обновления данных в базе данных комнаты и представления обновления - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть приложение для Android с min SDK 19, посмотрите в моем сценарии:

  1. нажмите на кнопку;
  2. Сканирование обратного вызова BLE сканирует устройства BLE и, если оно находит конкретныйустройство (у меня есть специальный MAC-адрес, отправляет мне; 3. возвращенный объект имеет тип ScannedBleDevice, я его получаю и запускаю mGattCallback.connect (...);
  3. я отлично подключаюсь к устройству, а onConnectionStateChanged равно SUCCESS;
  4. я записываю характеристику, затем читаю другую;
  5. i обновляю Таблица базы данных комнаты зависит от полученных данных от устройства ble;
  6. просмотры изображений и текстовые просмотры в активном представлении Обновление одновременнопотому что я использую тип liveata в таблицах данных комнаты;
  7. точно после обновления, я отключаюсь от устройства BLE, не получая никаких обратных вызовов onConnectionStateChange.

почему? я не знаю, пожалуйста.помогите мне ... я нашел что-то в этих ссылках, но не совсем то, что я хочу:

Android: перехват соединения BLE завершается ошибкой / отключается?

Android - параметр подключения BLE и сохранение данных датчика BLE в базе данных SQLite

Android-устройство иногда не отключается

1 Ответ

0 голосов
/ 28 ноября 2018

Наконец я нашел решение: я использую архитектуру MVVM. Когда моя деятельность создана, я читаю данные из базы данных в виде и устанавливаю наблюдателя на нее. затем установите данные для адаптера viewpager и для каждой строки данных добавьте фрагмент в viewpager; поэтому в одном из моих фрагментов я пытаюсь подключиться к устройству BLE, и соединение установлено хорошо. немедленно прочитайте данные с устройства ble и сохраните в базе данных, чтобы вызвать обозреватель данных, и viewpager установил новый фрагмент для просмотра, а все последние объекты во всех фрагментах исчезли навсегда, поэтому Callback-класс ble исчез, и я потерял соединение. при первом чтении я устанавливаю флаг в значение true, а после изменения не читаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...