首页 文章

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

提问于
浏览
1

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

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

1 回答

  • 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 代码的相应部分来做到这一点 . 我会把它作为锻炼给你 .

相关问题