编写脚本连接/断开已配对的蓝牙设备

编写脚本连接/断开已配对的蓝牙设备

有没有办法通过 powershell 或任何其他工具连接和断开配对的蓝牙设备?基本上按下蓝牙和其他设备中的连接/断开按钮,除了任何类型的命令行(Powershell、使用某些命令行工具的 bat、C#、C++ 中的代码等):

蓝牙和其他设备

我找到了这个回答但它需要取消配对并重新配对,这行不通,因为我的耳机需要处于配对模式才能接受新的配对。我不想通过 AutoIt 或其他类似的软件模拟按键和鼠标点击。

答案1

我编写了 C++ 代码来使用它Win32 蓝牙 APIBluetoothSetServiceState,但实际上已经足够使用了蓝牙命令行工具

事实证明,一旦设备正在使用的所有服务都被禁用,Windows 就会自动释放和断开设备。在我的例子中,这些是语音和音乐,如屏幕截图所示,大多数耳机的工作方式相同。
语音实际上是免提服务 (HFP),音乐只是音频接收器 (A2DP)。服务标识符是必需的,可以通过使用btdiscovery上述包中的命令或通过蓝牙服务列表. HFP语音是111e,A2DP音乐是110b

每个btcom命令行帮助:

用法:

btcom {-c|-r} {-bBluetoothAddress | -nFriendlyName} [-s{sp|dun|GUID|UUID}]

 -c  Create association between COM port and a remote service (Enable non-COM service).
 -r  Remove association between COM port and a remote service (Disable non-COM service).
 -s  Remote service to use (Default is Serial Port Service)
 -b  Bluetooth address of remote device in (XX:XX:XX:XX:XX:XX) format. 
 -n  Friendly name of remote device.

要断开设备连接,请发出以下命令(仅在以管理员身份运行时才有效,使用 Windows 10 1809(17763.437)):

"C:\Program Files (x86)\Bluetooth Command Line Tools\bin\btcom" -n "WH-1000XM3" -r -s111e
"C:\Program Files (x86)\Bluetooth Command Line Tools\bin\btcom" -n "WH-1000XM3" -r -s110b

要再次连接,请发出相同的命令-c,而不是-r。这适用于其他设备,而不仅仅是耳机,只要禁用/启用 Windows 连接的所有服务/配置文件即可。

注意:由于执行蓝牙发现,使用-n <friendly name>比使用慢得多。-b <address>

答案2

win10快捷方式https://www.windowscentral.com/best-windows-10-keyboard-shortcuts

win-key + K 打开侧边栏菜单并立即搜索蓝牙设备。然后单击已配对的设备并连接。

答案3

如果@MarcinJ 使用蓝牙命令行工具的解决方案对您来说太慢,尤其是当您想在有来电时配对设备时,请尝试创建 Windows 快捷方式:(
右键单击 > 新建 > 快捷方式)

%windir%\explorer.exe ms-settings-connectabledevices:devicediscovery

屏幕上会弹出显示和音频面板,只需单击一下即可连接。
例如,可以在 上找到用于快捷方式的漂亮 BT 图标C:\Windows\System32\fsquirt.exe

答案4

运用灵感https://github.com/stanleyguevara/win10-bluetooth-headphones我已经修改了该脚本,以便我可以通过单击快捷方式(或绑定到快捷方式的键盘快捷键)连接/断开多个设备。

断开快捷方式属性对话框

我的叉子在这里:https://github.com/nickboldt/win10-bluetooth-headphones

相关内容