Jumeler avec un appareil Bluetooth sur le terminal

12

J'essaie de connecter et de coupler un périphérique Bluetooth à partir de la ligne de commande. Je peux le faire sur l'interface graphique en utilisant le processus standard, mais je cherche à automatiser l'ensemble du processus.

Je recherche des commandes qui peuvent être exécutées dans un script shell pour se connecter au périphérique Bluetooth. Tout comme Linux a des commandes "hcitool", "pand", j'essaie de trouver des commandes équivalentes pour macOS.

Comment puis-je accomplir cela?

Ankur Bose
la source

Réponses:

2

Cela semble un peu "hacky", mais vous pouvez le faire en utilisant un Javascript qui émule les interactions GUI nécessaires pour la connexion: /programming//a/23018886/5269642

Je n'ai malheureusement pas pu trouver d'API documentée pour le bluetooth, l'approche oascript était la meilleure que j'ai pu trouver / penser jusqu'à présent.

SimMac
la source
1

blueutil(disponible via HomeBrew) est la réponse. Je viens de l'utiliser en suivant les directives de ce blog .

Dans mon cas, j'avais un iMac avec macOS Catalina qui n'avait pas de trackpad couplé. J'étais coincé à "Envoyer Apple Crash Analytics?" écran sans commandes de clavier. À l'aide de SSH, je me suis connecté à la machine et j'ai utilisé les commandes suivantes pour coupler puis connecter le trackpad sans accès à l'interface graphique. (Tout d'abord, j'ai dû transformer le trackpad en mode détectable. Le code PIN par défaut pour les périphériques de pointeur Apple est 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

À ce stade, le trackpad a fonctionné.

Josh Cheshire
la source
0

L'outil blueutil utilise des API privées du framework IOBluetooth pour interagir avec les appareils bluetooth. Vous pouvez répertorier les appareils récents en utilisant:

blueutil --recent

et connectez-vous à un appareil spécifique en utilisant:

blueutil --connect $device_adress
Friedrich
la source