如何强制Android为特定的BluetoothDevice缓存BluetoothGatt的服务发现?

时间:2019-01-05 04:45:26

标签: android bluetooth bluetooth-lowenergy android-bluetooth

我正在从事一个需要始终保持快速蓝牙连接的项目。我在实践中发现,Android 6(棉花糖)似乎总是为任何设备缓存Gatt。较新版本的Android OS似乎仅在绑定到外围设备时才缓存,从而导致每个蓝牙连接的服务发现时间都非常长。

对于我的用例,我需要能够支持所有设备,而不仅仅是棉花糖。我也负担不起与外围设备的绑定。

我已经在线阅读了几篇文章,这些文章指出,通用属性服务的存在和服务已更改的特征将迫使Android缓存,即使没有绑定也是如此。我昨天进行了一次快速测试,似乎暗示这不是事实。

我想念什么吗?我已经考虑过尝试使用this answer中@ulusoyca建议的反射方法来对其进行黑客攻击并手动缓存服务信息,但是如果Android API在Android版本之间进行更改,那似乎是一场灾难。

0 个答案:

没有答案