Emparejar con un dispositivo Bluetooth sobre Terminal

12

Estoy intentando conectar y emparejar un dispositivo Bluetooth desde la línea de comandos. Puedo hacerlo a través de la GUI usando el proceso estándar, pero estoy buscando automatizar todo el proceso.

Estoy buscando comandos que se puedan ejecutar en un script de shell para conectarse al dispositivo Bluetooth. Al igual que Linux tiene comandos "hcitool", "pand", estoy tratando de encontrar comandos equivalentes para macOS.

¿Cómo puedo lograr esto?

Ankur Bose
fuente

Respuestas:

2

Esto parece un poco "hacky", pero puede hacerlo utilizando un oascript que emula las interacciones GUI necesarias para conectarse: /programming//a/23018886/5269642

Lamentablemente, no pude encontrar ninguna API documentada para bluetooth, el enfoque oascript fue lo mejor que pude encontrar / pensar hasta ahora.

SimMac
fuente
1

blueutil(disponible a través de HomeBrew) es la respuesta. Solo lo usé siguiendo las pautas de esta publicación de blog .

En mi caso, tenía un iMac con macOS Catalina que no tenía un trackpad emparejado. Estaba atrapado en "¿Enviar Apple Crash Analytics?" pantalla sin controles de teclado. Usando SSH, me conecté a la máquina y usé los siguientes comandos para emparejar y luego conectar el trackpad sin acceso a la GUI. (Primero, tuve que convertir el trackpad en modo Descubrible. El PIN predeterminado para los dispositivos punteros de Apple es 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

En ese momento, el trackpad funcionaba.

Josh Cheshire
fuente
0

La herramienta blueutil utiliza API privadas del marco IOBluetooth para interactuar con dispositivos bluetooth. Puede enumerar dispositivos recientes utilizando:

blueutil --recent

y conectarse a un dispositivo específico usando:

blueutil --connect $device_adress
Friedrich
fuente