¿Cómo puedo escribir un script de un dispositivo bluetooth para conectar / desconectar?

16

Tengo auriculares bluetooth que utilizo para escuchar música desde mi teléfono móvil y para escuchar videos en mi computadora portátil. No se pueden conectar a ambos dispositivos a la vez ( tenga en cuenta aquí ), por lo que tengo que desconectarme de un dispositivo antes de conectarme al siguiente.

Para hacer esto en Windows 7, tengo que abrir Dispositivos e impresoras, abrir mis auriculares bluetooth y hacer clic en el botón Conectar / Desconectar. Me encantaría poder ejecutar un script que active el botón Conectar / Desconectar. De esa manera podría tener un acceso directo en el escritorio o agregar un acceso directo de teclado.

Lo he simplificado un poco creando un acceso directo a la ventana de los auriculares bluetooth (en Dispositivos e impresoras, haga clic derecho en su dispositivo bluetooth y elija Crear acceso directo). Pero sería bueno racionalizar aún más.

David Cook
fuente
2
Si. Mi computadora no tiene capacidades Bluetooth, pero puede usar AutoHotkey para automatizar el proceso. Véase mi respuesta aquí para las ideas: superuser.com/questions/403620/...
iglvzx
Gracias, buena idea. Lo probaré cuando tenga un minuto libre.
David Cook
@DavidCook Háganos saber si lo soluciona, me encantaría obtener una copia de ese script.
BigElittles
Lo siento @Big, no creo que lo haya solucionado. Me alegra que hayas encontrado una solución.
David Cook

Respuestas:

2

Encontré una pregunta similar, aquí está la resolución. /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

OP dijo que estaba recibiendo un cuadro de mensaje emergente, pero también está en Windows 8, por lo que podría ser exclusivo de su configuración.

BigElittles
fuente
2

Como resultado, una vez que todos los servicios en uso por un dispositivo se deshabilitan, Windows libera y desconecta el dispositivo automáticamente. En mi caso de ejemplo a continuación para WH-1000XM3, estos son voz y música, y la mayoría de los auriculares funcionarán de la misma manera. Por supuesto, esto dependerá del dispositivo en uso.

Necesitará herramientas de línea de comandos de Bluetooth .

La voz es en realidad el servicio de manos libres (HFP) y la música es solo un receptor de audio (A2DP). Los identificadores de servicio serán necesarios y se pueden descubrir mediante el uso del btdiscoverycomando del paquete anterior o mediante la lista de servicios Bluetooth . La voz HFP es 111e, la música A2DP es 110b.

Por btcomlínea de comando ayuda:

Uso:

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.

Para desconectar el dispositivo, emita lo siguiente (solo funciona cuando se ejecuta como administrador en mi caso, usando 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

Para conectarse nuevamente, emita lo mismo con en -clugar de -r. Esto funciona para otros dispositivos, no solo auriculares, siempre que todos los servicios / perfiles conectados por Windows se deshabiliten / habiliten.

Nota: el uso -n <friendly name>es mucho más lento que el uso -b <address>debido al descubrimiento de Bluetooth.

MarcinJ
fuente