首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Bluez5中自动进行蓝牙配对/信任

在Bluez5中自动进行蓝牙配对/信任
EN

Stack Overflow用户
提问于 2015-05-14 17:11:26
回答 2查看 6K关注 0票数 1

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

我在网上搜索了一遍,但似乎每个人都说使用bluetoothctl对他们来说很管用,但在这种特殊的设置中,我希望朋友们能够配对自己的手机,必须信任车载RPi的设备是不理想的。

EN

回答 2

Stack Overflow用户

发布于 2015-05-14 20:02:50

我不明白为什么你说在bluez5中使用简单的脚本是不可能的。我想你可以做到的。下面是一个如何实现的示例。

下载bluez5源代码并编辑test/simple-agent。注释掉代码行,如下所示:

代码语言:javascript
复制
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代码的适当部分来实现此目的。我会把它作为练习留给你。

票数 2
EN

Stack Overflow用户

发布于 2019-07-27 02:08:36

我已经安装了bluez-5.43。这是如何在覆盆子pi上自动化配对过程。

(1)首先测试一条这样的线路,以确保蓝牙代理工作正常:

代码语言:javascript
复制
 bluez-5.43/test/simple-agent -c NoInputNoOutput

(2)要实现自动配对,请将此代码放入一个外壳文件(我将其命名为pairbot.sh):

代码语言:javascript
复制
if [ "$(id -un)" != "pi" ]; then
        exec sudo -u pi $0 "$@"
    fi

    export XAUTHORITY=/home/pi/.Xauthority
    export DISPLAY=:0

     lxterminal --command="/bin/bash -c '/home/pi/bluez-5.43/test/simple-agent -c NoInputNoOutput &; read'"

(3)进入crontab:

代码语言:javascript
复制
sudo cronetab -e

(4)在底部增加:

代码语言:javascript
复制
@reboot sleep 20 &&  /home/pi/pairbot.sh > /home/pi/blelog.txt 2>&1

(5)重启并测试是否正常。

对于其他面临同样问题的人,我的建议是查看您的bluez文件夹(或者,如果您没有bluez文件夹,请安装最新版本的bluez),然后在显示"test“的文件夹中搜索"simple agent”,以找到文件路径。从这里,您应该能够构造上面所示的命令行(1)。希望它也能为你工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30233442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档