如何允许忘记我设备的主机使用“bluetoothctl”重新连接?

问题描述 投票:0回答:1

我正在使用 Raspberry Pi 为我的汽车制作蓝牙立体声音响。实际上,我正在制作一个蓝牙扬声器。我目前可以使用此脚本发现并连接到 Pi:

#!/bin/bash

sudo bluetoothctl <<EOF
power on
discoverable on
pairable on
agent off # For some reason, the agent needs to be turned off before reassignment?
agent NoInputNoOutput
default-agent
EOF

脚本的输出已经有点不确定,因为它似乎同时发送所有命令,导致一些命令不按顺序完成。

另一个奇怪的是任何其他代理如何通过

bluetoothctl
完美地工作,但是
NoInputNoOutput
,我在没有干预的情况下处理连接的唯一方法,只是无法在对等方忘记配对后处理重新连接。

我希望能够忘记任何设备上的配对,并让 Pi 在之后处理重新连接,而无需我的手机告诉我:

iPhone 无法再连接到“TacoBox”。忘记此设备并重新配对。

bluetooth debian bluetoothctl
1个回答
0
投票

连接 iPhone 后,您可能需要添加 trust 命令以确认 iPhone 的绑定/配对。该命令的工作原理如下:-

trust <iPhone's MAC address>

例如

trust 00:11:22:33:44:55

您需要修改脚本以捕获连接设备的 MAC 地址,然后将其用作“信任”参数。首先,我会手动测试它,以确保它在修改脚本之前正常工作。

另一件事是尝试使用以下配置更新 /etc/bluetooth/main.conf:-

AlwaysPairable=true
AutoConnect=true

但是,我会将这些保留为稍后的手段,因为它们可以被视为安全风险,因为它们将设备配置为始终可在无需用户干预的情况下配对。

最后,我会在脚本中添加 sleep 参数,以便命令不会“同时发送”,并且您的脚本变得更加连续。

一些相关参考:-

© www.soinside.com 2019 - 2024. All rights reserved.