我正在尝试从健康档案中读取温度值.根据official google ble devlopment page,当我尝试通知健康温度计特性读取温度时,我尝试使用writeDescriptor写一个描述符值(客户端特征配置),根据谷歌的GATT_INSUFFICIENT_AUTHENTICATION,写一个writeDescriptor返回状态5的回调方法.
所以我评论writedescriptor的代码并尝试调用方法mBluetoothGatt.setCharacteristicNotification(特性,启用);但onCharacteristicChanged方法从未调用过.当我和我的ios devloper团队交谈时.他们说他们从不写一个描述符值,他们只是将通知设置为true,他们从同一芯片获得温度值.
写一个描述符值是android开发者获取通知所必需的???
所以最后我尝试从bluetooth.com网站运行官方蓝牙应用程序进行测试,他们只是禁用所有三个按钮通知读写???
谢谢你,对不起我的英语
[UPDATE]
???????找出一些可能导致粘接问题的日志,请帮助我,如果你有任何解决方案.
>生成的短期密钥仍然记录为错误
11-08 11:26:44.392:E / bt-smp(1014):STK生成
>在此之后,债券状态发生巨大变化可能导致认证不足
11-08 11:26:49.437:I / BluetoothBondStateMachine(1014):bondStateChangeCallback:状态:0地址: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
[UPDATE]
???在nexus 7上升级kitkat 4.4之后.添加两个方法
device.createBond();
device.setPairingConfirmation(真);
现在我可以阅读加密的特性.但仍然不稳定.但我得到了一些成功.