在 Linux 命令行上以编程方式删除所有蓝牙设备

Posted

技术标签:

【中文标题】在 Linux 命令行上以编程方式删除所有蓝牙设备【英文标题】:Programmatically removing all bluetooth devices on the Linux command line 【发布时间】:2013-07-08 22:56:18 【问题描述】:

我可以使用 hcitool 或我的 C 程序扫描所有可用的蓝牙设备。

我可以使用设备的地址与简单代理 python 脚本配对设备。

我想知道我是否也可以使用 hcitool、hciconfig 或某种蓝牙命令删除配对的设备。

我知道 hci0 控制器检测到的设备信息存储在 /var/lib/bluetooth/XX:XX:XX:XX:XX:XX 中,其中 XX:XX:XX:XX:XX 是hci 控制器。

这对于测试配对、连接和断开设备很有用。

【问题讨论】:

你能和我分享一下你是如何在 OS X 上使用 hcitool 来扫描 BT 【参考方案1】:

bluez-test-device 移除 XX:XX:XX:XX:XX:XX

【讨论】:

(通过bluez-list-devices获取XX:XX:XX:...) 这真的帮助我解决了我的问题。 bluez-test-device 命令似乎对于以编程方式创建/删除/信任蓝牙很有用,谢谢。 我需要安装什么?【参考方案2】:

如果你安装了bluez-tools 包,运行这个来取消蓝牙设备的配对:

bt-device -r xx:xx:xx:xx:xx:xx

其中xx:xx:xx:xx:xx:xx 是配对设备的地址。

【讨论】:

非常适合我【参考方案3】:

对于那些使用 Ubuntu 20.04 的用户,这里是使用 bluetoothctl 命令的相同命令

#!/bin/bash 
for device in $(bluetoothctl devices  | grep -o "[[:xdigit:]:]\8,17\"); do
    echo "removing bluetooth device: $device | $(bluetoothctl remove $device)"
done

【讨论】:

【参考方案4】:

正如上面在 ashish 的回答中提到的,您可以使用 bluez-test-device 删除您已经知道其 mac 地址的设备。所以问题是解析添加设备的mac地址。

使用 python 或 c 或任何你使用的东西,

1) 列出设备;

bluez-test-device list

并解析输出并获取设备的所有 MAC 地址,将它们添加到列表中。

2) 断开并移除设备;

bluez-test-device disconnect <MAC ADDRESS>
bluez-test-device remove <MAC ADDRESS>

【讨论】:

【参考方案5】:

使用bluetoothctl二进制的命令:for device in $(bluetoothctl devices | grep -vEi '(o que mais vc quer deixar aqui|samsung|jbl|wireless)' | awk 'print $2'); do bluetoothctl remove $device; done

【讨论】:

这正是我所需要的,一直在到处寻找这样的简单解决方案。【参考方案6】:

所有这些答案都没有回答标题“删除所有蓝牙设备”

我编写了这个小 bash 脚本来删除 bt-device -l 中列出的所有蓝牙设备

#!/bin/bash 
for device in $(bt-device -l | grep -o "[[:xdigit:]:]\11,17\"); do
    echo "removing bluetooth device: $device | $(bt-device -r $device)"
done

如何运行?

    创建一个像&lt;fileName&gt;.sh 这样的新文件并粘贴上面的代码。 运行chmod +x &lt;fileName&gt; 使脚本可执行 运行./&lt;fileName&gt;.sh 庆祝!现在所有蓝牙设备都已移除:)

【讨论】:

以上是关于在 Linux 命令行上以编程方式删除所有蓝牙设备的主要内容,如果未能解决你的问题,请参考以下文章

在运行 Windows IoT 的 RPi3 上以编程方式接受入站蓝牙配对请求

在 iOS7+ 上以编程方式打开蓝牙的任何方式

以编程方式编辑 UITableView 在所有行上显示删除按钮

在android上以编程方式打开/关闭大写锁定和shift键

当 BLE 在 Swift 中以编程方式连接时,蓝牙设备设置中缺少信息按钮

如何在 Linux x86 上使用 C 对蓝牙 LE 设备进行编程?