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

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

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

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

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

я получаю мак адрес

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

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


person DellanX    schedule 05.04.2018    source источник


Ответы (1)


Вызов 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/

person Parthiban    schedule 07.06.2018