自动在Bluez5蓝牙配对/信任(Automate Bluetooth Pairing/Trusti

2019-10-23 02:49发布

我一直在努力使我的RPI 2的功能就像一个车载蓝牙接收器,一切都很好,但我不知道我怎么会自动在Bluez5蓝牙设备的配对。 在过去,我会一直使用蓝牙剂和一个简单的脚本,但似乎已经没有了窗口从4招 - > 5.设置的性质意味着我对RPI没有键盘/鼠标一次其在车上,所以它需要一个完全自动化的设置,任何人都可以扫描RPI,如果可能的硬编码密码是正确的,需要自动完成,无需输入CLI设备的信任。

我已经搜索所有网站上,但每个人都似乎是说,使用bluetoothctl为他们工作,但在这个特殊的设置,其中我希望能有朋友配对自己的手机,其与RPI信任外的设备车子是不理想的。

Answer 1:

我不知道你为什么说用一个简单的脚本是不可能的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 -c NoInputNoOutput

之后,你应该能够与RPI配对没有任何用户提示或PIN。

请注意,这只是一个你可以做什么的例子。 如果说你想有一个硬编码密码,而不是简单的配对,然后编辑相同的相应部分simple-agent的代码来做到这一点。 我会离开,作为一个练习。



Answer 2:

我已经安装了的bluez-5.43。 这是怎样的配对过程在树莓派自动化。

(1)首先测试这样一个线路输出,以确保蓝牙剂的工作原理:

 bluez-5.43/test/simple-agent -c NoInputNoOutput

(2)自动配对,把这个代码放到一个shell文件(我将其命名pairbot.sh):

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:

sudo cronetab -e

(4)在底部添加:

@reboot sleep 20 &&  /home/pi/pairbot.sh > /home/pi/blelog.txt 2>&1

(5)重新启动并测试它是否工作。

我对其他面临同样问题的建议是看看你的bluez文件夹(如果你没有一个安装最新版本的bluez)和搜索,说:“测试”“简单的代理”来定位文件夹文件路径。 在这里,你应该能够以构建上述(1)中所示的命令行。 希望这会为你工作了。



文章来源: Automate Bluetooth Pairing/Trusting in Bluez5