我继承了一个读取特征然后关闭连接的Android应用程序。对于Android Gatt缓存的版本4和5,服务和特性以及后续连接使用缓存。这对我的应用程序有好处,虽然我知道它会导致其他问题。
最近在MOTO Play上使用Android 6.0.1进行的测试显示,Gatt没有使用缓存并在每个连接上请求服务和特性。我的应用程序仍然可以工作,但它需要时间并使用不好的功能。
经过一些谷歌搜索后,我不清楚在配对/绑定后或连接后是否启用了Gatt缓存。我的申请没有配对或保税。
答案 0 :(得分:0)
配对/绑定和连接都没有任何关系。一旦您在连接后执行它的发现,Android就会缓存服务和特性。
根据我的经验,我发现了一些始终进行发现的设备,而其他没有进行GATT缓存的设备可以节省大量时间。外围设备改变它的服务或特性并不常见,因此缓存始终是一种好方法。然而,遗憾的是,您无法通过Android API进行管理,这完全取决于Android和设备的BLE堆栈固件。
答案 1 :(得分:0)
根据规范,如果设备未绑定(并且具有服务更改特性),则可能不会缓存GATT数据库。所以新行为是正确的。只需使用绑定,它就会使用缓存。