我正在尝试从健康档案中读取温度值。健康温度计服务。根据官方 google ble devlopment page当我尝试通知健康温度计特征以读取温度时,我尝试使用 writeDescriptor 写入描述符值(客户端特征配置),writeDescriptor 的回调方法根据谷歌返回状态 5,它是 GATT_INSUFFICIENT_AUTHENTICATION。所以我注释了 writedescriptor 的代码并尝试调用方法 mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); 但从未调用过 onCharacteristicChanged 方法。当我与我的 ios 开发人员团队交谈时。他们说他们从不写描述符值,他们只是将通知设置为 true,然后从同一芯片获取温度值。android 开发者需要写一个描述符值才能得到通知???所以最后我尝试从蓝牙运行官方蓝牙应用程序。com 站点出于测试目的,他们只是禁用所有三个按钮通知读取和写入???谢谢你,对不起我的英语
[更新]
找出一些可能导致一些绑定问题的日志,如果您有任何解决方案,请帮助我。
生成的短期密钥仍然记录为错误
11-08 11:26:44.392: E/bt-smp(1014): STK Generated在绑定状态发生巨大变化之后,这可能会导致身份验证不足
11-08 11:26:49.437: I/BluetoothBondStateMachine(1014): bondStateChangeCallback: Status: 0 Address: 00:16:A4:C0:FF:EE newState: 2
11- 08 11:26:49.437: D/BtGatt.btif(1014): btif_gattc_upstreams_evt: 事件 9
11-08 11:26:49.437: E/BluetoothBondStateMachine(1014): 处于稳定状态,收到无效的 newState: 12
[更新]
在 nexus 7 上升级 kitkat 4.4 后。添加两种方法
对我有用,现在我可以读取加密特征。但仍然不稳定。但我取得了一些成功。
device.createBond();
device.setPairingConfirmation(true);