【问题标题】:BLE connection failed abruptly after update data in room database and update view更新房间数据库中的数据并更新视图后 BLE 连接突然失败
【发布时间】:2018-11-14 12:58:09
【问题描述】:

我有一个最低 SDK 19 的 android 应用,看看我的场景:

  1. 点击按钮;
  2. BLE 扫描回调扫描 BLE 设备,如果找到特定设备(我有特殊的 MAC 地址,发送给我; 3.返回的对象有 ScannedBleDevice 类型,我得到它并运行 mGattCallback.connect(...);
  3. 我完美连接到设备,onConnectionStateChanged 等于 SUCCESS;
  4. 我写了一个特征然后读另一个;
  5. 我根据从 ble 设备接收到的数据更新 Room 数据库表;
  6. 活动视图上的图像视图和文本视图同时更新,因为我在房间数据表上使用 livedata 类型;
  7. 就在更新视图之后,我与 BLE 设备断开连接,而没有收到任何 onConnectionStateChange 回调。

为什么?我不知道。请帮我... 我在这些链接中找到了一些东西,但不是我想要的:

Android: Catching BLE Connection Fails/Disconnects?

Android - BLE connection parameter and Storing BLE sensor data in SQLite Database

Android ble device is not disconnecting sometime

【问题讨论】:

    标签: android bluetooth-lowenergy android-view android-room


    【解决方案1】:

    最后我找到了解决方案:我使用 MVVM 架构。当我的活动创建时,我从数据库中读取数据类型并在其上设置一个观察者。然后将数据设置为viewpager的适配器,并为每个数据行添加一个片段到viewpager;所以在我的一个片段中,我尝试连接到 ble 设备并且连接设置良好。立即从 ble 设备读取数据并保存在数据库中,因此将调用数据的观察者,并且 viewpager 将新片段设置为查看,并且所有片段中的所有最后一个对象都永远消失了,因此对 ble 类的回调消失了,我失去了连接。我在第一次读取时将标志设置为真,在更改数据后我不读取。

    【讨论】:

      猜你喜欢
      • 2019-01-17
      • 2019-10-22
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多