在 Linux 上设置蓝牙自动配对



我想使用任何手机通过带有串行端口协议(SPP(的蓝牙经典连接到物联网设备。物联网设备没有屏幕,也没有键盘,只要连接手机知道秘密 PIN,它就应该自动接受连接(即,我不想每次新手机尝试连接时都被迫 ssh 进入物联网设备以设置配对(。

这些是我到目前为止在物联网设备上运行的命令:

# Make the device discoverable:
hciconfig hci0 piscan
# Register SPP:
sdptool add --channel=22 SP
# Start rfcomm:
rfcomm -r watch /dev/rfcomm0 22

不幸的是,我找不到任何设置 PIN 的方法,并且当我尝试与手机连接时配对失败。此外,设备只能在短时间内被发现。

如何将 IoT 设备的蓝牙堆栈(运行最近的 Bluez(配置为与任何知道给定 PIN 的手机自动配对,以及如何使发现期永久?

如果有人遇到这个问题,要直接从bash使用(大部分(BlueZ"BT Management Sockets"C API,请尝试:

btmgmt --help

btmgmt add-devicebtmgmt findbtmgmt discov

您可以运行实现BlueZ DBus API的应用程序。我重新命令 BlueZ>= 5.42。使用代理界面并实现您自己的 PIN 码。注册您的代理后,bluez 将在要求配对时自动调用并使用您自己的代理。

此外,您可以通过带有 org.bluez.Adapter1 接口的 DBus 将 DiscoverableTimeout 设置为 0。

"值为零 表示超时被禁用,它将保持 永远可发现/有限模式。

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/adapter-api.txt(DBUS 适配器对象文档(https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt(DBUS 代理对象文档(https://kernel.googlesource.com/pub/scm/bluetooth/bluez/+/5.44/test/simple-agent(示例(http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/(在底部阅读(

相关内容

  • 没有找到相关文章

最新更新