Как я могу написать скрипт устройства Bluetooth для подключения / отключения?


16

У меня есть Bluetooth-наушники, которые я использую как для прослушивания музыки с моего мобильного телефона, так и для прослушивания видео на моем ноутбуке. Они не могут быть подключены к обоим устройствам одновременно ( обратите внимание, здесь ), поэтому я должен отключиться от одного устройства перед подключением к следующему устройству.

Чтобы сделать это в Windows 7, мне нужно открыть «Устройства и принтеры», открыть наушники Bluetooth и нажать кнопку «Подключить / отключить». Я бы хотел иметь возможность запустить скрипт, который запускает эту кнопку Connect / Disconnect. Таким образом, я мог бы иметь ярлык на рабочем столе или добавить сочетание клавиш.

Я несколько упростил его, создав ярлык для окна Bluetooth-гарнитур (в разделе «Устройства и принтеры» щелкните правой кнопкой мыши устройство Bluetooth и выберите «Создать ярлык»). Но было бы хорошо оптимизировать дальше.


2
Да. Мой компьютер не поддерживает Bluetooth, но вы можете использовать AutoHotkey для автоматизации процесса. Смотрите мой ответ здесь для идей: superuser.com/questions/403620/…
iglvzx

Спасибо, хорошая идея. Я попробую это, когда у меня будет свободная минутка.
Дэвид Кук

@DavidCook Дайте нам знать, если вы разберетесь с этим, я бы хотел взять копию этого сценария.
BigElittles

Извините @Big, я не думаю, что когда-либо разобрался в этом. Рад, что вы нашли решение.
Дэвид Кук

Ответы:


2

Я нашел похожий вопрос, вот разрешение. /programming/29724513/automatically-adding-a-bluetooth-device-in-windows-8

@ECHO OFF
if exist toggle.txt goto :2
btpair -u
C:\NIRCMD\NIRCMDC setdefaultsounddevice "CompSpeak" 1
C:\NIRCMD\NIRCMDC setdefaultsounddevice "CompSpeak" 2

echo toggle>>toggle.txt

exit
:2
btpair -n"[Samsung] AirTrack" -p0000
C:\NIRCMD\NIRCMDC setdefaultsounddevice "Headphones" 1
C:\NIRCMD\NIRCMDC setdefaultsounddevice "Headphones" 2

del toggle.txt /q

exit

ОП сказал, что он получает всплывающее окно с сообщением, но он также работает на Windows 8, так что это может быть уникальным для его настройки.


2

Оказывается, как только все службы, используемые устройством, отключаются, устройство автоматически освобождается и отключается Windows. В моем примере ниже для WH-1000XM3 это голос и музыка, и большинство наушников будут работать одинаково. Это, конечно, зависит от используемого устройства.

Тебе понадобится инструменты командной строки Bluetooth .

На самом деле голос - это сервис громкой связи (HFP), а музыка - просто приемник аудио (A2DP). Идентификаторы услуг будут необходимы, и их можно обнаружить с помощью btdiscoveryкоманды из пакета выше или через список служб Bluetooth. . Голос 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>из-за выполнения обнаружения Bluetooth.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.