是否有可能改善BLE服务发现

时间:2014-03-07 14:46:48

标签: android bluetooth android-service bluetooth-lowenergy discovery

我对Android上的BLE服务发现提出了一个小问题。 我有一些工作得很好,但我有一点性能问题..

我看到函数BluetoothGatt.discoverServices()在发送回给你之前首先发现所有服务+特征+描述符。但在我的情况下,它需要两秒多一点,我绝对需要花费更少的时间。 我的代码基于我在Android SDK中找到的示例。

所以我只是想知道是否有办法做到这一点?我们可以覆盖服务发现,这样我们就可以发现服务而不是特征/描述符或其他任何东西:/?或者有没有其他方法来发现服务?

1 个答案:

答案 0 :(得分:0)

尽管如此,旧问题仍需要一些见解。通过在连接之后和在discoverServices()上调用BluetoothGatt之前将连接优先级设置为高,可以在某种程度上改善服务发现。尽管不建议这样做,因为它会很快耗尽智能手机的电池电量。但是在调用onServicesDiscovered()之后,您可以切换回平衡优先级。在连接上也是如此。

gatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH);

(位于onServicesDiscovered()上)将优先级切换回平衡。

gatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_BALANCED);

这将改善您的服务发现。但是,重要的是要提到,这取决于智能手机的BLE实施取决于您获得的改进量。

相关问题