在Bluez5中自动化蓝牙配对/信任

时间:2015-05-14 09:11:26

标签: bluetooth debian raspberry-pi bluez raspberry-pi2

我一直致力于让我的RPi 2功能像汽车蓝牙接收器一样好,但我不知道如何在Bluez5中自动配对蓝牙设备。在过去,我会使用蓝牙代理和一个简单的脚本,但这似乎已经从窗口移出4 - > 5.设置的性质意味着我的RPi上没有kb /鼠标,所以它需要是一个完全自动化的设置,任何人都可以扫描RPi,如果可能是硬编码的PIN是正确的,设备的信任需要自动完成,没有cli输入。

我已经在网上搜索过,但是每个人似乎都说使用bluetoothctl可以为他们工作,但在这个特殊的设置中,我希望能够让朋友配对他们自己的手机,不得不将RPi放在车外的信任设备并不理想。

2 个答案:

答案 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)。希望它也对您有用。