BlueZ vs Bluedroid bluetooth stack
BlueZ имеет много документов и все. И из того же, я понял, что BlueZ поддерживает поддержку A2DP. И в то же время устройство Android может быть сделано как приемник A2DP, изменив файл audio.conf внутри того же самого.
Я также узнал, что с Android 4.0 и далее пакет BlueZ был заменен стеком Broadcom Bluedroid. Я много искал о стеке Bluedroid. Но я не смог найти много деталей об этом.
Надеюсь, кто-то может помочь мне со следующими сомнениями.
1). Поддерживает ли Bluedroid поддержку раковины A2DP?
2). Будет ли файл audio.conf доступен для устройств, имеющих стек bluedroid?
3). Я собираюсь написать поддержку A2DP-приемника для устройства Android, напрямую вызвав API из пакета BlueZ. Но мой последний вопрос заключается в том, можно ли использовать его также с стеклом Bluedroid? Надежда Bluedroid - это просто расширение BlueZ.
Пожалуйста, помогите.
Ответы
Ответ 1
Bluedroid - это стек, предоставляемый Broadcom и теперь с открытым исходным кодом в Android. Bluedroid не имеет отношения к bluez в любом отношении, он имеет несколько преимуществ по сравнению с bluez (я отличаюсь этим).
[1]. Bluedroid не имеет поддержки s2dp-приемника на данный момент, поскольку доступный код исходный код доступен только поддержка источника a2dp
[2]. Файл Audio.conf для стека bluez, он не является частью bluedroid
[3]. Непосредственный вызов Bluez API - я думаю, вы будете использовать вызовы dbus, но bluedroid не поддерживает вызовы методов dbus, у него есть механизм обратного вызова, поэтому он не будет работать, bluedroid не является расширением bluez.
Ответ 2
Роль A2DP Sink теперь поддерживается в Android Lollipop (5.0). Они модифицировали исходный код Bluedroid для поддержки того же. Чтобы полностью его поддержать, вам необходимо изменить аудио HAL (audio.h), AudioPolicyManagerBase.cpp и audio_policy.conf, а также Audio Manager, A2DPStateMachine и т.д.
Ответ 3
Как сказал user987500, приемник A2DP поддерживается в android L, только внести незначительные изменения, вы можете изменить устройство с A2DP src на потоковое.
Но убедитесь, что для одного устройства может поддерживаться только одна роль, которую можно настроить из XML файла.
Ответ 4
Добавление к вышеуказанным ответам, так как 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.
Все самое лучшее!!!