내가 하려는 작업은 개념상 간단합니다. Linux 컴퓨터를 (전화로부터의) 연결을 자동으로 수락하는 블루투스 슬레이브 장치로 만듭니다. 전반적인 목표는 자동으로 연결하여 전화 앱의 데이터를 Linux 컴퓨터의 Python으로 전송하는 것입니다. 내가 필요하다고 생각하는 단계는 다음과 같습니다.
먼저 hciconfig를 사용하여 블루투스 어댑터를 설정했습니다.
sudo hciconfig hci0 noauth
sudo hciconfig hci0 name thisdevice
sudo hciconfig hci0 lm SLAVE
sudo hciconfig hci0 lm ACCEPT
sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 reset
sudo hciconfig hci0 piscan
그런 다음 인증을 수행하려면 Bluetoothctl을 사용하는 Bluetooth 에이전트가 필요합니다.
bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput
그런 다음 휴대폰을 사용하여 연결해야 합니다. 그러나 연결하려면 bluetoothctl 내의 터미널에 YES를 입력해야 합니다. (올바른 핀을 확인하라는 메시지가 표시됩니다). 이는 문제이며 NoInputNoOutput 설정의 전체 목적을 무효화합니다.
그런 다음 Pybluez와 discover_service 함수를 사용하는 Python 프로그램을 실행할 수 있습니다. 그런 다음 전화 앱에서 해당 서비스에 연결할 수 있습니다.
이게 사건의 순서가 맞나요? 블루투스가 자동으로 인증되도록 하려면 어떻게 해야 하나요? (bluez에서 에이전트 코드를 수정하시겠습니까?)
감사해요
답변1
나는 결코 이 주제에 대한 전문가가 아닙니다. 오히려 나는 지금 3일 동안 똑같은 일을 시도하면서 간신히 살아남았다고 말하고 싶습니다. 나는 이제 포기하고 내 라즈베리 파이를 다른 모든 미완성 프로젝트 더미 위에 던지고 있습니다.
하지만 내 생각에 이 지옥을 통한 나의 여행은 당신에게 가치가 있을 것 같습니다. agent off
새 상담원을 등록하기 전에 다음을 입력해 보세요 .
bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on
해당 명령을 입력하는 동안 두 번째 터미널에서 실행하면 btmon
등록 중인 새 NoInputNoOutput 에이전트가 표시되어야 합니다.
답변2
이 시도:
bt-agent -c NoInputNoOutput -d