터미널을 통해 Bluetooth 장치와 페어링 자동화하려고합니다. 셸 스크립트에서 실행하여 Bluetooth 장치에 연결할 수있는

커맨드 라인에서 블루투스 장치를 연결하고 페어링하려고합니다. 표준 프로세스를 사용하여 GUI를 통해 할 수 있지만 전체 프로세스를 자동화하려고합니다.

셸 스크립트에서 실행하여 Bluetooth 장치에 연결할 수있는 명령을 찾고 있습니다. Linux에 “hcitool”, “pand”명령이있는 것처럼 macOS에 해당하는 명령을 찾으려고합니다.

어떻게하면 되나요?



답변

이것은 약간 “해킹적인”것처럼 보이지만 연결에 필요한 GUI 상호 작용을 에뮬레이트하는 oascript를 사용하여이를 수행 할 수 있습니다. /programming//a/23018886/5269642

안타깝게도 블루투스에 대한 문서화 된 API를 실제로 찾을 수 없었습니다.


답변

blueutil(HomeBrew를 통해 사용 가능)이 답입니다. 방금 이 블로그 게시물 의 지침에 따라 사용했습니다 .

필자의 경우, macOS Catalina가 장착 된 iMac에 트랙 패드가 연결되지 않았습니다. “Send Apple Crash Analytics?”에 갇혔습니다. 키보드 컨트롤이없는 화면. SSH를 사용하여 컴퓨터에 연결하고 다음 명령을 사용하여 GUI에 액세스하지 않고 트랙 패드를 페어링 한 다음 연결했습니다. (먼저, 트랙 패드를 검색 가능 모드로 전환해야했습니다. Apple 포인터 장치의 기본 PIN은 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 도구 는 IOBluetooth 프레임 워크의 개인 API를 사용하여 블루투스 장치와 상호 작용합니다. 다음을 사용하여 최근 장치를 나열 할 수 있습니다.

blueutil --recent

다음을 사용하여 특정 장치에 연결하십시오.

blueutil --connect $device_adress