通过终端连接到蓝牙设备

通过终端连接到蓝牙设备

我用的是 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似乎是一个很好的解决方案。如果设备尚未添加到您的蓝牙设备,这些都不起作用。我只是用了蓝人小程序进行设置。

相关内容