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/