我用的是 Mint 15 和肉桂。
我买了一套蓝牙扬声器,我正在尝试通过终端连接到它们。通过 GUI,我可以正常看到它们并连接到它们。我想制作一个小脚本,以便每次它们可见时我都会自动连接到它们。
我正在尝试使用以下方式扫描它们:
hcitool扫描
但我得到
扫描...
几秒钟后该进程就会终止。
同样的事情与hidd --search
.
如果我运行hciconfig scan
我会得到:
hci0: Type: BR/EDR Bus: USB
BD Address: 40:2C:F4:78:E8:69 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN ISCAN
RX bytes:130700 acl:22 sco:0 events:18527 errors:0
TX bytes:31875398 acl:36784 sco:0 commands:75 errors:0
我想这只是说我的蓝牙地址并且它已打开。
正如我已经说过的,通过正常的用户界面,我可以看到扬声器并连接到它们,但通过终端我什么也得不到。
实际上,很有趣的是,hcitool scan
由于我的扬声器已连接,所以没有找到任何东西,并且每次运行命令时,扬声器中的声音都会中断几秒钟。
答案1
我设法通过这样做bluez-工具:
sudo apt-get install bluez-tools
用于获取我的设备 MAC 地址的设备列表:
bt-device -l
并成功连接到它:
bt-device -c 01:02:03:04:05:06
答案2
要使用内置实用程序来完成此操作,您可以使用稍微手动的过程bluetoothctl
。
hcitool scan # to get the MAC address of your device
bluetoothctl
agent on
scan on # wait for your device's address to show up here
scan off
trust MAC_ADDRESS
pair MAC_ADDRRESS
connect MAC_ADDRESS
中的帖子这个 Github 问题建议一种编写脚本的方法,但这对我来说不起作用,因为我需要手动等待扫描产生结果。
答案3
我这样做了sudo apt-get install bluez-tools
,因为我确实在某个时候使用过它。
在能够从 找到设备后hcitool scan
,我运行了bluez-simple-agent hci0 X
其中 X 是我要添加的设备的 MAC 地址。这创建了与设备的连接。
然后我跑了一下hciconfig scan
,好像已经自动开始连接了。
答案4
我的一些耳机也遇到了类似的情况,我经常在电脑和手机之间切换。我创建了这个 bash 脚本并将其放置在我路径上的一个文件夹中,以便我可以通过命令行(以及通过我构建的启动器)连接/断开与这些耳机的连接。这是用于bluetoothctl
连接/断开连接的脚本。我在问题中使用了MAC地址:
#!/bin/bash
MAC="${1:-40:2C:F4:78:E8:69}"
DEVICE=$(bt-device -l | grep $MAC | cut -d " " -f1-2)
if [[ $(bt-device -i $MAC | awk '/Connected/ {print $2}') == 1 ]]
then
echo "Device was connected, now disconnecting $DEVICE"
echo -e "disconnect $MAC" | bluetoothctl > /dev/null
else
echo "Device was disconnected, now connecting $DEVICE"
echo -e "connect $MAC" | bluetoothctl > /dev/null
fi
要成功执行此脚本,您需要设置您的 MAC 地址或在运行脚本时提供它。你还必须有bluez-工具安装。
要使用 aptitude 安装 bluez-tools,请运行
sudo apt-get install bluez-tools
为了发现硬件的 MAC 地址,我使用了以下命令
bt-device -l
其中列出了所有添加的蓝牙设备。按照以下指示,我在这方面有了一个良好的开端@Zippie的回答-bt-audio
自从回答了这个问题后,似乎已经坏了。但bt-device -l
似乎是一个很好的解决方案。如果设备尚未添加到您的蓝牙设备,这些都不起作用。我只是用了蓝人小程序进行设置。