Sparuj z urządzeniem Bluetooth przez terminal

12

Próbuję podłączyć i sparować urządzenie Bluetooth z wiersza polecenia. Mogę to zrobić za pomocą GUI przy użyciu standardowego procesu, ale chcę zautomatyzować cały proces.

Szukam poleceń, które można wykonać w skrypcie powłoki, aby połączyć się z urządzeniem Bluetooth. Podobnie jak Linux ma polecenia „hcitool”, „pand”, staram się znaleźć równoważne polecenia dla systemu macOS.

Jak mogę to osiągnąć?

Ankur Bose
źródło

Odpowiedzi:

2

To wydaje się trochę „hacky”, ale możesz to zrobić za pomocą oascript, który emuluje interakcje GUI potrzebne do połączenia: /programming//a/23018886/5269642

Niestety nie mogłem znaleźć żadnego udokumentowanego API dla bluetooth, podejście oascript było najlepsze, jakie do tej pory mogłem znaleźć / wymyślić.

SimMac
źródło
1

blueutil(dostępny przez HomeBrew) jest odpowiedzią. Właśnie go użyłem zgodnie ze wskazówkami zawartymi w tym poście na blogu .

W moim przypadku miałem komputer iMac z macOS Catalina, który nie miał sparowanego gładzika. Utknąłem w „Send Apple Crash Analytics?” ekran bez kontroli klawiatury. Korzystając z SSH, podłączyłem się do komputera i użyłem następujących poleceń, aby sparować, a następnie podłączyć gładzik bez dostępu do GUI. (Najpierw musiałem zmienić gładzik w tryb Wykrywalny. Domyślny kod PIN dla urządzeń Apple to 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

W tym momencie gładzik działał.

Josh Cheshire
źródło
0

Narzędzie blueutil wykorzystuje prywatne API z frameworka IOBluetooth do interakcji z urządzeniami bluetooth. Możesz wyświetlić listę ostatnich urządzeń, używając:

blueutil --recent

i połącz się z określonym urządzeniem, używając:

blueutil --connect $device_adress
Friedrich
źródło