我的目标是让Android设备重新连接到之前连接的BLE设备而无需用户干预,就像它对经典BT配对设备一样(甚至可以通过电源循环工作).
BTLE设备的一个想法是节省服务,绑定和启用状态,使得重新连接非常快并且在外围设备上消耗非常少的功率.
我所做的似乎有效,但效果不佳.
第一步是连接或配对并连接到新设备,将'autoconnect'参数设置为'true'.当设备断开连接时,请不要调用 gatt.close().无论我到哪里,我都会看到应该调用gatt.close().但如果我打电话给gatt.close(),Android中心应用程序永远不会重新连接.我已经多次测试过了.
如果我没有调用gatt.close()并且没有重启Android,则通常会发生自动连接.有时它可能需要很长时间,特别是在5.0版之后.然而,它是不可靠的并且由于非常低的扫描周期而且在扫描周期实际检测到广告之前设备退出广告可能是不可靠的.我不确定,因为没有办法像广告那样检测扫描操作!扫描也可能在一定时间后停止,但没有相关文档.
因此,我认为我需要做的就是以某种方式设置使用的是Android,以更高的占空比后台扫描速度(仅在5.0可能高达)时自动连接已定,但我不知道如何做到这一点.我不想开始自己的扫描,但不知何故设置了Android用于重新连接的后台扫描速率.有谁知道如何做到这一点?有谁真的知道autoconnect和gatt.close()是如何工作的?
也许自动连接并不意味着重新连接,如上所述?