Como posso criar um script para um dispositivo bluetooth para conectar / desconectar?

15

Eu tenho fones de ouvido bluetooth que uso tanto para ouvir músicas do meu celular quanto para ouvir vídeos no meu laptop. Eles não podem ser conectados aos dois dispositivos ao mesmo tempo ( observe aqui ), portanto, tenho que me desconectar de um dispositivo antes de conectar ao próximo dispositivo.

Para fazer isso no Windows 7, preciso abrir Dispositivos e impressoras, abrir meus fones de ouvido bluetooth e clicar no botão Conectar / Desconectar. Eu adoraria poder executar um script que dispara esse botão Conectar / Desconectar. Dessa forma, eu poderia ter um atalho na área de trabalho ou adicionar um atalho de teclado.

Eu o simplifiquei um pouco, criando um atalho para a janela de fones de ouvido bluetooth (em Dispositivos e Impressoras, clique com o botão direito do mouse no seu dispositivo bluetooth e escolha Criar atalho). Mas seria bom agilizar ainda mais.

David Cook
fonte
2
Sim. Meu computador não possui recursos Bluetooth, mas você pode usar o AutoHotkey para automatizar o processo. Veja minha resposta aqui para obter idéias: superuser.com/questions/403620/…
iglvzx 04/04/12
Obrigado, boa ideia. Vou experimentar quando tiver um minuto livre.
David Cook
@DavidCook Deixe-nos saber se você resolver o problema, eu adoraria pegar uma cópia desse script.
BigElittles
Desculpe @Big, acho que nunca resolvi isso. Que bom que você encontrou uma solução.
David Cook

Respostas:

2

Eu encontrei uma pergunta semelhante, aqui está a resolução. /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 disse que estava recebendo uma caixa de mensagem pop-up, mas ele também está no Windows 8, o que pode ser exclusivo para sua configuração.

BigElittles
fonte
1

Como se vê, uma vez que todos os serviços em uso por um dispositivo são desativados, o dispositivo é liberado e desconectado pelo Windows automaticamente. No meu exemplo de exemplo abaixo para o WH-1000XM3, trata-se de voz e música, e a maioria dos fones de ouvido funciona da mesma maneira. Obviamente, isso dependerá do dispositivo em uso.

Você precisará das Ferramentas de Linha de Comando Bluetooth .

A voz é realmente o serviço mãos livres (HFP) e a música é apenas um coletor de áudio (A2DP). Os identificadores de serviço serão necessários e podem ser descobertos através do uso do btdiscoverycomando do pacote acima ou da lista de serviços Bluetooth . Voz HFP é 111e, música A2DP é 110b.

Por btcomajuda da linha de comando:

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 o dispositivo, emita o seguinte (funciona apenas quando executado como administrador no meu caso, usando o 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 se conectar novamente, emita o mesmo com em -cvez de -r. Isso funciona para outros dispositivos, não apenas para fones de ouvido, desde que todos os serviços / perfis conectados pelo Windows sejam desativados / ativados.

Nota: o uso -n <friendly name>é muito mais lento que o uso -b <address>devido à realização da descoberta do Bluetooth.

MarcinJ
fonte