避免在连接期间从 BLE 设备发现服务

jua*_*aga 6 android bluetooth-lowenergy

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

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

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

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

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

AAn*_*kit 4

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

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

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

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