Zip*_*pie 76 command-line terminal bluetooth linux-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
Run Code Online (Sandbox Code Playgroud)
我想这只是说我的蓝牙地址并且它已打开。
正如我已经说过的,通过正常的用户界面,我可以看到扬声器并连接到它们,但是通过终端我什么也得不到。
实际上很有趣,hcitool scan
因为我的扬声器已连接并且每次运行命令时扬声器的声音都会中断几秒钟,所以没有找到任何东西。
Zip*_*pie 53
我设法通过bluez-tools做到了:
sudo apt-get install bluez-tools
Run Code Online (Sandbox Code Playgroud)
获取设备 MAC 地址的设备列表:
bt-device -l
Run Code Online (Sandbox Code Playgroud)
并成功连接到它:
bt-device -c 01:02:03:04:05:06
Run Code Online (Sandbox Code Playgroud)
小智 37
要使用内置实用程序来完成此操作,您可以使用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
Run Code Online (Sandbox Code Playgroud)
这个 Github 问题中的帖子提出了一种编写脚本的方法,但这对我不起作用,因为我需要手动等待扫描产生结果。
小智 12
我这样做了sudo apt-get install bluez-tools
,因为我确实在某些时候使用过它。
能够从 中找到设备后hcitool scan
,我运行bluez-simple-agent hci0 X
其中 X 是我添加的设备的 MAC 地址。这创建了与设备的连接。
然后我跑了hciconfig scan
,好像已经自动开始连接了。
小智 10
添加到Max的答案中,为了让您的生活更轻松,您只需使用一次即可找到设备的MAC地址
bluetoothctl devices
Run Code Online (Sandbox Code Playgroud)
使用以下命令连接蓝牙设备。
bluetoothctl connect <The Mac Address of your device>
Run Code Online (Sandbox Code Playgroud)
您可以在 shell 中为此创建别名,甚至可以在桌面环境中创建键盘快捷键。
这不是自动的,您必须手动触发命令,但这比在脚本中连续扫描的开销要少,并且在蓝牙设备启动后、被发现之前不会引入不必要的延迟。您只需在终端中或通过键盘快捷键触发脚本即可。