【发布时间】:2014-12-03 06:49:30
【问题描述】:
我们正在编写一个 ble 应用程序,希望与我们要连接的外围设备建立持久连接。出于同样的目的,我们希望在失去现有连接时重新连接外围设备。因此,作为中心的 android 应用程序只是尝试使用 bluetoothgatt.connect() 方法重新连接。
但是每当我们尝试这样做时,我们的重新连接都会失败,
12-02 21:47:11.865: D/BluetoothGatt(31963): onClientConnectionState() - status=6 clientIf=6 device=******** 回调。
这里奇怪的是 status=6 是 request not supported。
最初,我们通过设置或不设置自动连接标志的 bluetoothdevice.connectGatt 方法连接到外围设备。
我们观察到的另一件事是,最初当我们失去连接时,我们会收到以下回调
onClientConnectionState() - status=8 clientIf=6 device=******** 回调。其中状态 8 是 GATT_INSUF_AUTHORIZATION。但是,如果您看到 btsnoop_hci.log 文件,断开连接的原因是连接超时,这是预期的,因为我们超出了范围。但 status=8 具有误导性。
我们发现不明显的另一件事是,如果我在断开连接后丢弃现有的 bluetoothgatt 对象并使用 bluetoothdevice.connectGatt 创建一个新对象,我们会连接到更奇怪的设备。
我们正在使用棒棒糖和其他一些设备在 nexus 5 上观察所有这些东西。
任何帮助将不胜感激。
【问题讨论】:
标签: android bluetooth-lowenergy android-bluetooth