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

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

问题是,如果我在短时间内与设备断开连接或连接到另一台设备,下次连接到第一台设备时,我需要发现服务并需要2秒钟.

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

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

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

最佳答案 您可以连接,无需同时发现服务.在需要服务实例时进行服务发现.

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

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

因此,在使用这些服务/特征之前,您必须在应用程序中的某个时间点进行服务发现.

点赞