我正在使用该bluetoothctl
实用程序来设置计算机和 Raspberry Pi 之间的蓝牙连接。
在 中bluetoothctl
,我看到有一种称为“代理”的东西,通过查看大多数教程,必须将此“代理”设置为“开启”才能创建连接。我试图了解什么是蓝牙代理。
1)什么是蓝牙代理?
2) for 中的“default-agent”命令是什么bluetoothctl
? 它对所有连接都一样吗?
3)建立连接时不使用代理会有什么影响?
4) 通过查看man bluetoothctl
,据说可以为代理设置一项能力。什么是代理能力?可以在那里放什么值?
5) 代理只存在于蓝牙中吗? 比如说,wifi 代理也存在吗?
我对蓝牙世界还很陌生,而且关于 bluetoothctl 的文档非常有限...如能提供任何信息我将不胜感激。
答案1
蓝牙代理负责管理蓝牙“配对码”。它既可以响应传入的“配对码”,也可以发送配对码。
默认代理应该适合您。您说您是蓝牙新手,所以我建议您暂时使用默认代理。
不使用代理意味着两个设备无法协商“配对代码”。
举个例子可能会有帮助,下面是我在 Raspberry Pi 3 Shep 上工作的一个例子:
pi@shep:~/bluetooth $ bluetoothctl
[NEW] Controller B8:27:EB:B0:BC:22 shep [default]
[NEW] Device 18:9E:FC:94:8C:33 iPhone4
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
[CHG] Device 18:9E:FC:94:8C:33 Connected: no
在这里我让iPhone与Shep配对,iPhone发送了680044。
[CHG] Device 18:9E:FC:94:8C:33 Connected: yes
Request confirmation
[agent] Confirm passkey 680044 (yes/no): yes
或者如果您想提前设置密钥,请参见以下内容:
http://www.heatxsink.com/entry/how-to-pair-a-bluetooth-device-from-command-line-on-linux
设置蓝牙代理以传递预期的配对代码
$ bluetooth-agent 0000 &
显然,“0000”可以是任何数字。
这些代理和“配对代码”特定于蓝牙,而不是 Wi-Fi。