Koppeln Sie mit einem Bluetooth-Gerät über das Terminal

Ich versuche, ein Bluetooth-Gerät über die Befehlszeile zu verbinden und zu koppeln. Ich kann dies über die GUI mit dem Standardprozess tun, aber ich möchte den gesamten Prozess automatisieren.

Ich suche nach Befehlen, die in einem Shell-Skript ausgeführt werden können, um eine Verbindung zum Bluetooth-Gerät herzustellen. Genau wie Linux "hcitool"- und "pand"-Befehle hat, versuche ich, gleichwertige Befehle für macOS zu finden.

Wie kann ich das erreichen?

Antworten (4)

blueutil(erhältlich über HomeBrew) ist die Antwort. Ich habe es nur gemäß den Richtlinien in diesem Blogpost verwendet .

In meinem Fall hatte ich einen iMac mit macOS Catalina, der kein gekoppeltes Trackpad hatte. Ich blieb bei der Frage „Apple Crash Analytics senden?“ hängen. Bildschirm ohne Tastatursteuerung. Mit SSH habe ich mich mit der Maschine verbunden und die folgenden Befehle verwendet, um das Trackpad ohne Zugriff auf die GUI zu koppeln und dann zu verbinden. (Zuerst musste ich das Trackpad in den sichtbaren Modus schalten. Die Standard-PIN für Apple-Zeigergeräte ist 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

Zu diesem Zeitpunkt funktionierte das Trackpad.

blueutil --recentIch führe diese Option aus, habe eine Liste, aber blueutil --inquiryda keine neuen Geräte verfügbar sind.

Das Tool blueutil verwendet private APIs aus dem IOBluetooth-Framework, um mit Bluetooth-Geräten zu interagieren. Sie können die letzten Geräte auflisten mit:

blueutil --recent

und verbinden Sie sich mit einem bestimmten Gerät mit:

blueutil --connect $device_adress

Dies scheint ein wenig "hacky", aber Sie können dies tun, indem Sie ein Oascript verwenden, das die für die Verbindung erforderlichen GUI-Interaktionen emuliert: https://stackoverflow.com/a/23018886/5269642

Ich konnte leider keine dokumentierten APIs für Bluetooth finden, der oascript-Ansatz war der beste, den ich bisher finden/denken konnte.

Ich benutze das:

https://github.com/lapfelix/BluetoothConnector

TL;DR

$ brew install bluetoothconnector

$ BluetoothConnector # gets the address of your connected devices

$ BluetoothConnector 00-00-00-00-00-00 --notify # toggles the connection

Ersetzen Sie 00-00-00-00-00-00 durch Ihre MAC-Adresse