【问题标题】:Avoid discover services from BLE device during connection避免在连接过程中发现来自 BLE 设备的服务
【发布时间】:2015-05-25 08:10:14
【问题描述】:

我正在开发一个具有蓝牙低功耗通信功能的 Android 应用程序,我需要与我的 BLE 设备建立快速连接。发现设备的服务需要 2 秒,这对我的应用程序来说很多,如果我第一次连接到设备,服务会保存在 BLE 框架中的某个缓存中,那么下次我尝试发现服务需要毫秒,那就是适合我的应用。

问题是,如果我从设备断开连接 lnog 时间或连接到另一台设备,下次连接到第一台设备时,我需要发现服务并需要 2 秒。

我只连接到一种类型的设备,并且服务和特征是已知的。

我尝试使用有界(配对)设备,但是当我连接到它们时,没有保存任何服务,我需要再次发现它。

是否有任何方法可以保存服务和特征并将其保存在我的应用程序中,以便下次连接到设备时我不需要发现服务?

【问题讨论】:

  • 这个运气好吗?我看到与 Android L 类似的问题
  • 我也想要这个问题的答案。无论如何要避免服务发现,总是?

标签: android bluetooth-lowenergy


【解决方案1】:

您可以连接而无需同时发现服务。在需要服务实例时进行服务发现。

是否有任何方法可以保存服务和特征并将其保留在我的应用中,以便下次连接到设备时无需发现服务?

您可以在app 中保存servicecharacteristic 的详细信息。但是当您尝试读取和写入特征时,BluetoothGatt 实例应该具有此详细信息,并且只有服务发现才会在 BluetoothGatt 实例中添加服务数据。

因此,在使用 services/characteristics 之前,您必须在某个时间点在您的应用中执行 service discovery

【讨论】:

    猜你喜欢
    • 2014-05-03
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多