有没有办法通过 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