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