如何制作自动连接的蓝牙从设备

如何制作自动连接的蓝牙从设备

我想做的概念很简单:使 Linux 计算机成为自动接受连接(来自手机)的蓝牙从设备。总体目标是自动连接并将数据从手机应用程序传输到 Linux 计算机上的 python。以下是我认为需要的步骤:

我首先使用 hciconfig 设置蓝牙适配器:

sudo hciconfig hci0 noauth
sudo hciconfig hci0 name thisdevice
sudo hciconfig hci0 lm SLAVE
sudo hciconfig hci0 lm ACCEPT
sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 reset
sudo hciconfig hci0 piscan

然后我需要一个使用 Bluetoothctl 的蓝牙代理来进行身份验证:

bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput

然后我需要使用手机进行连接。但是,为了连接,我仍然必须在 bluetoothctl 中的终端中输入 YES。(它要求确认正确的 Pin)。这是一个问题,并且破坏了 NoInputNoOutput 设置的整个目的。

然后我可以运行使用 Pybluez 和advertise_service 函数的python 程序。然后我可以从手机应用程序连接到该服务。

这是正确的事件顺序吗?如何让蓝牙自动验证? (修改bluez中的代理代码?)

谢谢

答案1

我绝不是这个话题的专家,我宁愿说我尝试了同样的事情 3 天,才勉强活下来。我现在放弃了,把我的树莓派扔到所有其他未完成的项目堆里。

不过,我认为我穿越这个地狱的旅程可能对你有价值。agent off在注册新代理之前尝试输入:

bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on

在输入这些命令时在第二个终端上运行btmon应该会显示正在注册的新 NoInputNoOutput 代理。

答案2

尝试这个:

bt-agent -c NoInputNoOutput -d

相关内容