微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NRF BLE 芯片,带绑定 - NoInputNoOutput 模式下的 bt-agent 不能“忘记”设备

如何解决NRF BLE 芯片,带绑定 - NoInputNoOutput 模式下的 bt-agent 不能“忘记”设备

在新地方的第一个小项目,我遇到了一些麻烦 - 希望我能得到一些想法。我们有一个使用 NRF 芯片的 BLE 设备,我们刚刚启用了安全和绑定。我们希望设置我们的 linux 测试装置,以便设备可以配对和绑定,而无需操作员接受每个设备的绑定请求。在现场,最终用户至少需要将设备与智能手机绑定一次。

我使用 bt-agent --compatibility=NoInputNoOutput 设置了一个代理,如下所述: https://www.kynetics.com/docs/2018/pairing_agents_bluez/

在我的 linux 桌面 (Ubuntu 20.10) 上没有用户交互的情况下,绑定工作得非常好。问题是,当我移除代理时,我曾希望粘合过程会恢复正常。它没有 - 它仍然不需要用户交互来建立绑定。在我“忘记”设备后,从我的 Android 手机完成的类似操作按预期工作。

我正在寻找更多关于如何在我的 linux 计算机上重置此设备的绑定/配对的想法,以便我可以轻松地在需要用户输入和不需要用户输入之间来回切换(用于测试和演示目的)。我尝试了以下方法

  • 在 /var/lib/bluetooth//cache 中删除我设备的缓存条目
  • 使用 bluetoothctl 移除设备 => 移除 aa:bb:cc:dd:ee:ff
  • 使用 bluetoothctl => agent off 删除所有代理(直到没有更多代理)
  • 现在可能还没有想到其他一些事情

无论如何,当我在我的蓝牙列表中单击它(或选择在 bluetoothctl 中连接)时,设备会自动绑定。关于如何将我的 linux 机器恢复到需要用户交互进行绑定过程的状态,还有其他想法吗?

感谢一百万

解决方法

我希望 Remove the device using bluetoothctl => remove aa:bb:cc:dd:ee:ff 已删除设备和绑定信息。 这让我怀疑您的代理仍在后台运行,并在请求进行配对/绑定时被触发。我的假设是 bt-agent 注册的代理将在 bt-agent 退出时取消注册。 bt-agent 脚本是否仍在后台运行?代理不是在退出时未注册吗?

我的系统上没有 bt-agent,因为它似乎不是标准 BlueZ 产品的一部分,所以我无法重现该问题。要在配对和退出 bt-agent 时获得更多调试信息,请打开单独的终端并运行以下命令以更清楚地了解正在发生的事情:

  • bluetootctl
  • journalctl -f -u bluetooth
  • sudo busctl monitor org.bluez
  • sudo btmon

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?