Сопряжение с устройством Bluetooth через терминал

12

Я пытаюсь подключить и выполнить сопряжение устройства Bluetooth из командной строки. Я могу сделать это через графический интерфейс, используя стандартный процесс, но я хочу автоматизировать весь процесс.

Я ищу команды, которые можно выполнить в сценарии оболочки для подключения к устройству Bluetooth. Так же, как в Linux есть команды «hcitool», «pand», я пытаюсь найти эквивалентные команды для macOS.

Как я могу сделать это?

Анкур Бозе
источник

Ответы:

2

Это кажется немного «хакерским», но вы можете сделать это с помощью oascript, который эмулирует GUI-взаимодействия, необходимые для подключения: /programming//a/23018886/5269642

К сожалению, я не смог найти ни одного документированного API для bluetooth, oascript-подход был лучшим, что я мог найти / придумать до сих пор.

SimMac
источник
1

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

На тот момент трекпад работал.

Джош Чешир
источник
0

Инструмент blueutil использует частные API-интерфейсы из инфраструктуры IOBluetooth для взаимодействия с устройствами Bluetooth. Вы можете перечислить последние устройства, используя:

blueutil --recent

и подключиться к конкретному устройству, используя:

blueutil --connect $device_adress
Фридрих
источник