Emparelhar com um dispositivo Bluetooth pelo Terminal


12

Estou tentando conectar e emparelhar um dispositivo Bluetooth na linha de comando. Posso fazer isso na GUI usando o processo padrão, mas estou procurando automatizar todo o processo.

Estou procurando comandos que possam ser executados em um shell script para conectar-se ao dispositivo Bluetooth. Assim como o Linux possui os comandos "hcitool", "pand", estou tentando encontrar comandos equivalentes para o macOS.

Como posso fazer isso?

Respostas:


2

Isso parece um pouco "hacky", mas você pode fazer isso usando um oascript que emula as interações da GUI necessárias para a conexão: /programming//a/23018886/5269642

Infelizmente, eu não conseguia encontrar nenhuma API documentada para bluetooth, a abordagem de JavaScript foi a melhor que consegui encontrar / pensar até agora.


1

blueutil(disponível via HomeBrew) é a resposta. Eu apenas o usei seguindo as diretrizes nesta postagem do blog .

No meu caso, eu tinha um iMac com o macOS Catalina que não tinha nenhum trackpad emparelhado. Eu estava preso no "Send Apple Crash Analytics?" tela sem controles do teclado. Usando o SSH, conectei-me à máquina e usei os seguintes comandos para emparelhar e conectar o trackpad sem acesso à GUI. (Primeiro, tive que transformar o trackpad no modo Detectável. O PIN padrão para dispositivos ponteiros da Apple é 0000.)

% blueutil --inquiry
address: d0-a6-xx-xx-xx-xx, not connected, not favourite, not paired, name: "-", recent access date: -
% blueutil --pair d0-a6-xx-xx-xx-xx
Type pin code (up to 16 characters) for "Cheshire, Josh’s Trackpad" (d0-a6-xx-xx-xx-xx) and press Enter: 0000
% blueutil --connect d0-a6-xx-xx-xx-xx

Nesse ponto, o trackpad funcionou.


0

A ferramenta blueutil usa APIs privadas da estrutura IOBluetooth para interagir com dispositivos bluetooth. Você pode listar dispositivos recentes usando:

blueutil --recent

e conecte-se a um dispositivo específico usando:

blueutil --connect $device_adress
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.