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?
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.
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
Xiaojueguan
blueutil --recent
Ich führe diese Option aus, habe eine Liste, aberblueutil --inquiry
da keine neuen Geräte verfügbar sind.