Beaglebone черный беспроводной Bluetooth AVRCP

Я работаю над проектом с беспроводной связью Beagle Bone Black, где мне нужно иметь возможность отправлять команды управления музыкой на телефон. Обратите внимание, я не хочу передавать музыку на мой beaglebone. Я потратил около недели на поиск в Интернете и нашел очень мало об этом.

ОС для beaglebone - это Debian Jessie. Я могу заставить работать такие вещи, как hci0tool, Bluetoothctl, hciconfig. Я могу обнаружить и подключиться к устройству. Кажется, однако, что мое соединение длится только для процесса сопряжения, и каждый раз после этого прерывается.

Мой текущий процесс выполняется:

sudo su
bluetoothctl
power on
agent on
default-agent
scan on

Я получаю MAC-адрес

scan off
pair <MAC Address>
trust <MAC Address>
connect <MAC Address>

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

1 ответ

Call connect на интерфейсе Device1 попытается соединить все поддерживаемые профили между устройством и адаптером. Это происходит путем согласования или обмена поддерживаемыми профилями.

Подключение может быть невозможно, если адаптер не поддерживает минимальное требование профилей, которое требуется для устройства. В этом случае вам может понадобиться поставщик A2DP на стороне адаптера для успешного подключения. Да, это противоречит этому утверждению.

Если вы не хотите соединяться со всеми профилями между устройством и адаптером, то вы можете использовать метод ConnectProfile в интерфейсе Device1.

Но bluetoothctl не предоставляет команд для выполнения ни ConnectProfile, ни ваших команд AVRCP.

Вам необходимо использовать вызовы D-Bus, чтобы установить связь с Bluetoothd. Если ваше приложение основано на командной строке / оболочке, вы можете использовать команды dbus-send / gdbus для обращения к интерфейсу D-Bus.

Хотя bluez-tools реализуют команды AVRCP для управления мультимедиа, они не предоставляют никакой утилиты, которая их использует. Либо вы можете скомпилировать bluez-tools как библиотеку и разработать приложение с помощью API управления мультимедиа, либо использовать dbus-send/gdbus.

Я начал с некоторых сэмплов, используя GDBUS, но пока не для контролов AVRCP. Смотрите здесь: https://gist.github.com/parthitce и Документация здесь: https://www.linumiz.com/category/blog/

Другие вопросы по тегам