Я пытаюсь подключить и выполнить сопряжение устройства Bluetooth из командной строки. Я могу сделать это через графический интерфейс, используя стандартный процесс, но я хочу автоматизировать весь процесс.
Я ищу команды, которые можно выполнить в сценарии оболочки для подключения к устройству Bluetooth. Точно так же, как в Linux есть команды «hcitool», «pand», я пытаюсь найти эквивалентные команды для macOS.
Как я могу это сделать?
blueutil
(доступно через HomeBrew) — это ответ. Я просто использовал его, следуя рекомендациям в этом сообщении в блоге .
В моем случае у меня был iMac с macOS Catalina, к которому не был подключен трекпад. Я застрял на странице «Отправить Apple Crash Analytics?» экран без клавиатуры. Используя SSH, я подключился к машине и использовал следующие команды для сопряжения, а затем подключил трекпад без доступа к графическому интерфейсу. (Сначала мне пришлось перевести трекпад в режим «Обнаружение». PIN-код по умолчанию для указателей Apple — 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
В этот момент трекпад работал.
Инструмент blueutil использует частные API из фреймворка IOBluetooth для взаимодействия с устройствами Bluetooth. Вы можете перечислить последние устройства, используя:
blueutil --recent
и подключитесь к определенному устройству, используя:
blueutil --connect $device_adress
Это кажется немного «хакерским», но вы можете сделать это с помощью oascript, который эмулирует взаимодействие с графическим интерфейсом, необходимое для подключения: https://stackoverflow.com/a/23018886/5269642
К сожалению, я не смог найти никаких документированных API для Bluetooth, подход oascript был лучшим, что я мог найти/придумать до сих пор.
Я использую это:
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
Замените 00-00-00-00-00-00 на свой MAC-адрес.
сяоцзюэгуань
blueutil --recent
я запускаю эту опцию, у меня есть списокblueutil --inquiry
, но новые устройства недоступны.