我一直致力于让我的RPi 2功能像汽车蓝牙接收器一样好,但我不知道如何在Bluez5中自动配对蓝牙设备。在过去,我会使用蓝牙代理和一个简单的脚本,但这似乎已经从窗口移出4 - > 5.设置的性质意味着我的RPi上没有kb /鼠标,所以它需要是一个完全自动化的设置,任何人都可以扫描RPi,如果可能是硬编码的PIN是正确的,设备的信任需要自动完成,没有cli输入。
我已经在网上搜索过,但是每个人似乎都说使用bluetoothctl可以为他们工作,但在这个特殊的设置中,我希望能够让朋友配对他们自己的手机,不得不将RPi放在车外的信任设备并不理想。
答案 0 :(得分:2)
我不确定为什么你说使用bluez5无法使用简单的脚本。我想你可以做到。以下是一个示例。
下载bluez5源代码并修改test/simple-agent
。注释掉代码行,如下所示:
def RequestAuthorization(self, device):
print("RequestAuthorization (%s)" % (device))
#auth = ask("Authorize? (yes/no): ")
#if (auth == "yes"):
return
#raise Rejected("Pairing rejected")
这样做会删除授权提示并始终接受配对请求。
现在可以使用NoInputNoOutput功能启动simple-agent,以便它使用简单的配对,并将通过上面的代码路径:
./simple-agent -c NoInputNoOutput
之后,您应该能够在没有任何用户提示或PIN的情况下与RPi配对。
请注意,这只是您可以做的一个示例。如果您想要使用硬编码PIN而不是简单配对,请编辑相同simple-agent
代码的相应部分来执行此操作。我会把它作为锻炼给你。
答案 1 :(得分:0)
我已经安装了bluez-5.43。在遇到类似问题后,我发现只需要将其添加到命令行中即可。
(1)
./bluez-5.43/test/simple-agent -c NoInputNoOutput
从这里,我将此行添加到crontab中,现在每次都可以使用。
(2)
sudo crontab -e
对于其他面临相同问题的人,我的建议是查看您的bluez文件夹(或者如果您没有安装最新版本的bluez),然后搜索对“简单代理”说“测试”的文件夹查找文件路径。从这里,您应该能够构建上面显示的命令行(1)。希望它也对您有用。