我一直在努力使我的RPI 2的功能就像一个车载蓝牙接收器,一切都很好,但我不知道我怎么会自动在Bluez5蓝牙设备的配对。 在过去,我会一直使用蓝牙剂和一个简单的脚本,但似乎已经没有了窗口从4招 - > 5.设置的性质意味着我对RPI没有键盘/鼠标一次其在车上,所以它需要一个完全自动化的设置,任何人都可以扫描RPI,如果可能的硬编码密码是正确的,需要自动完成,无需输入CLI设备的信任。
我已经搜索所有网站上,但每个人都似乎是说,使用bluetoothctl为他们工作,但在这个特殊的设置,其中我希望能有朋友配对自己的手机,其与RPI信任外的设备车子是不理想的。
我不知道你为什么说用一个简单的脚本是不可能的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
的代码来做到这一点。 我会离开,作为一个练习。
我已经安装了的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)中所示的命令行。 希望这会为你工作了。