我正在尝试使用Linux上的gatttool连接到设备。我运行hcitool lescan以获取设备mac地址,然后运行gatttool -i hci1 -b <macaddr> -t random -I。然后我输入connect。我看到[con]如预期,但问题是它在大约1s后自动消失,没有错误消息。我已经找了几个小时了,但我不明白为什么是这样?
注意:我在运行之前运行过一次hcitool lecc只是为了尝试,但在我看来,从那时起,gatttool连接不再正常工作(如上文所述的意外断开)。是因为我用了gatttool?如果是,有没有办法“撤销”它?

最佳答案

不确定这是否有帮助,因为我在我的覆盆子皮(一个最新的喘息版本)和bluez 5.18(2014年4月发布)上看到了这种行为。
在完成一个lecc之后,我可以从命令行连接到ble外设,没有任何问题。我认为你不需要在一次LECC后重新设置。不管怎样,如果您确实想重置您的bt加密狗,因为它处于某种奇怪的状态,请查看this excellent step-by-step guide以重置bt加密狗。我遵循了这些步骤,结果是一致的。
我可以连接并查询say primary,但通常情况下,连接会在手动键入primary之前断开。见下面的结果。如果在连接后使用向上/向下箭头快速滚动到主设备,则可以看到此外围设备提供的主服务,而不会出现任何问题。
~$sudo gattool-i-i hci0-m 48-b 20:cd:39:a8:11:af
[20:CD:39:A8:11:AF][LE]>连接
尝试连接到20:cd:39:a8:11:af
连接成功
[20:CD:39:A8:11:AF][LE]>初级
命令失败:已断开连接

07-24 09:55