我开发了一款连接到Polar心脏监护仪的应用程序。我使用以下方式连接到它: device.connectGatt(this,false,mGattCallback);如果我丢失了连接,我会重新扫描设备,然后重新连接到同一个监听显示器。
我想知道我是否可以使用以下方式获得此行为:
device.connectGatt(this,true,mGattCallback);
无需重新扫描设备。
哪种方式更好?
答案 0 :(得分:1)
截至目前,这是不可能的。在与设备绑定后,外围设备不再主动建立连接。中央应该轮询并发现外围设备的存在。这是BLE的架构,它以节省外围设备能量的方式设计。
参考:http://www.amazon.com/Inside-Bluetooth-Energy-Artech-Communications/dp/1608075796
注意:如果设备开始实施BLE 4.1和4.2标准,则可能会发生这种情况。
答案 1 :(得分:1)
我们观察到自动连接“真实”的奇怪行为。即使用如下连接: device.connectGatt(this,true,mGattCallback)
行为无法预测。有时它可以工作并自动连接而无需再次扫描设备,但有时它没有按预期自动连接。 此外,我们观察到自动连接的奇怪行为。即使手机蓝牙关闭,手机也会连接到设备。
我认为扫描设备是更可靠的选择。