BlueZ vs Bluedroid bluetooth stack

У BlueZ много документов и всего. И из того же, я понял, что BlueZ поддерживает поддержку A2DP. И в то же время устройство Android может быть сделано как приемник A2DP, изменив файл audio.conf внутри того же самого.

Я также узнал, что с android 4.2 и далее пакет BlueZ был заменен стеком Bluedroid от Broadcom. Я много искал о стеке Bluedroid. Но я не мог найти много деталей об этом.

Надеюсь, кто-то может помочь мне со следующими сомнениями.

1). Поддерживает ли Bluedroid поддержку приемника A2DP?

2). Будет ли файл audio.conf доступен для устройств, имеющих стек bluedroid?

3). Я собираюсь написать поддержку A2DP-приемника для устройства Android, напрямую вызвав API-интерфейс BlueZ-стека. Но мой последний вопрос заключается в том, можно ли использовать его также с стеклом Bluedroid? Надежда Bluedroid – это просто расширение BlueZ.

Пожалуйста помоги.

Solutions Collecting From Web of "BlueZ vs Bluedroid bluetooth stack"

Bluedroid – это стек, предоставляемый Broadcom и теперь с открытым исходным кодом в Android. Bluedroid не имеет отношения к bluez в любом отношении, он имеет несколько преимуществ по сравнению с bluez (я отличаюсь этим).

[1]. В настоящее время у Bluedroid нет поддержки s2dp-приемника, так как в коде, доступном исходном коде, доступна только поддержка источника a2dp

[2]. Файл Audio.conf предназначен для стека bluez, он не является частью bluedroid

[3]. Прямо называя Bluez API – я думаю, вы будете использовать вызовы dbus, но bluedroid не поддерживает вызовы методов dbus, у него есть механизм обратного вызова, поэтому он не будет работать, bluedroid не является расширением bluez.

Роль A2DP Sink теперь поддерживается в Android Lollipop (5.0). Они модифицировали исходный код Bluedroid для поддержки того же. Чтобы полностью его поддерживать, вам необходимо изменить аудио HAL (audio.h), AudioPolicyManagerBase.cpp и audio_policy.conf, а также Audio Manager, A2DPStateMachine и т. Д.

Как сказал user987500, приемник A2DP поддерживается в android L, только незначительные изменения, вы можете изменить устройство с A2DP src, чтобы потопить его. Но убедитесь, что для одного устройства может поддерживаться только одна роль, которую можно настроить из XML-файла.

Добавляя к вышеуказанным ответам, поскольку Android L, поддержка приемника вводится, но все же часть аудиопотока кода не завершена. Тем не менее, я нашел этот список изменений, в котором реализована реализация раковины a2dp, и медиа можно воспроизводить через приемное устройство, как указано в сообщении фиксации списка изменений:

Разъем Bluetooth A2DP

Это изменение реализует функцию приемника A2DP. Если устройство android является роли приемника, оно может получать музыку с телефона через BT. Эта функция может применяться в мультимедийных автомобильных комплектах, приставках и семейных HiFi. Установите BLUETOOTH_A2DP_SINK: = true в BoardConfig.mk, чтобы включить A2DP Sink featue в bluedroid.

Вам также понадобятся изменения, приведенные ниже, для маршрутизации музыки в динамик. https://android-review.googlesource.com/#/c/97832/ https://android-review.googlesource.com/#/c/97853/ https://android-review.googlesource.com/#/ C / 97833 / https://android-review.googlesource.com/#/c/98130/ https://android-review.googlesource.com/#/c/98131/

Это изменение не включает декодер SBC. Вы можете получить декодер SBC из github.com/tieto/sbc-decoder.

Всего наилучшего!!!