代码之家  ›  专栏  ›  技术社区  ›  Travis Griggs

Android上的快速(1s)双特征通知不会与外围设备断开连接

  •  0
  • Travis Griggs  · 技术社区  · 6 年前

    我们一直在开发一个定制的BLE外设小工具,并编写一个Android应用程序与之接口。我们发现了一种似乎无法理解的故障模式。

    外围设备有许多特性,其中一些特性被标记为 PROPERTY_INDICATE .

    gatt.disconnect() 最后是 gatt.close() ,设备会感应到断开连接并返回到广告模式。

    有一个模式,外设可以进入,虽然它广播的变化,以2个特点与属性琰指示每秒。当外设处于该模式并且我们断开连接时,设备将永远不会收到断开连接。不知何故,android设备(三星Tab2或三星S9)保持连接。我们知道它是连接的,因为在我们关闭手持设备之前,设备不会感觉到断开。但是,如果你质疑BluetoothManager.getConnectedDevices()显示0。

    我们已经进行了多次迭代,尝试对原因进行三角剖分:

    • 减少特征计数->无变化
    • 将更新速率降低到每2秒一次->成功
    • 将其中一个特征更改为使用NOTIFY->SUCCESS

    有人能提出可能的问题吗?或者如何更接近发生了什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Travis Griggs    6 年前

    在移植应用程序后使用 SweetBlue

    Android和PROPERTY\u表示不能很好地混合/扩展。开发商小心。