Android何时使用BluetoothGatt.close()



Android声明了关于BluetoothGatt.close()方法的使用的这一相当一般的声明:"一旦你的应用程序使用完BLE设备,它应该调用close(),这样系统就可以适当地释放资源"然而,目前还不清楚"完成"是什么意思。BTLE应用程序通常会保存服务和其他信息,以便在未来的连接中更快地做出响应。那么,这是否意味着应该在断开连接(使用设备完成)或应用程序关闭时调用"close()"?

这是我通过反复试验发现的。在我当前的应用程序中,我将实现BluetoothGattCallback的对象保存在静态列表中。我连接到的每个设备都有一个对象。我只在从静态列表中删除对象时调用close()。我使用"autoconnect=true"选项,据我所知,这意味着在随后的连接中,Android会自动扫描来自该设备的广告,因此不必手动调用连接(如果设备需要,则需要配对)。它运行得相当好。我配对到一个设备,读取数据,使用UI进行连接,然后获取数据。我又读取了一次,设备在没有连接的情况下给了我数据。这是预期的行为。

现在,我在断开连接时使用close()实现。我无法再手动或以其他方式重新连接。

最新更新