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

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

То, что я пытаюсь сделать, по идее просто: сделать компьютер Linux подчиненным устройством Bluetooth, которое автоматически принимает соединения (с телефона). Общая цель — автоматически подключаться и передавать данные из приложения телефона в Python на компьютере Linux. Вот шаги, которые, по моему мнению, необходимы:

Сначала я настроил адаптер Bluetooth с помощью 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

Затем мне нужен агент Bluetooth, использующий Bluetoothctl для выполнения аутентификации:

bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput

Затем мне нужно подключиться с помощью телефона. Однако, чтобы подключиться, мне все равно нужно ввести YES в терминале в bluetoothctl. (он просит подтвердить правильный Pin). Это проблема, которая сводит на нет весь смысл настройки NoInputNoOutput.

Затем я могу запустить свою программу Python, которая использует Pybluez и функцию advertise_service. Затем я могу подключиться к этой службе из приложения для телефона.

Это правильный порядок событий? Как сделать так, чтобы bluetooth автоматически аутентифицировался? (изменить код агента в bluez?)

Спасибо

решение1

Я ни в коем случае не эксперт в этой теме, я бы сказал, что я едва выжил, пытаясь сделать то же самое в течение 3 дней. Теперь я сдаюсь и бросаю свой raspberry pi в кучу всех других незаконченных проектов.

Однако я думаю, что мой тур по этому аду может быть вам полезен. Попробуйте ввести agent offперед регистрацией нового агента:

bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on

Запуск btmonвторого терминала при вводе этих команд должен показать регистрацию нового агента NoInputNoOutput.

решение2

попробуй это:

bt-agent -c NoInputNoOutput -d

Связанный контент