Используются ли профили Bluetooth A2DP и SPP для записи звука с Bluetooth-микрофона?

#android #react-native #bluetooth

#Android #реагировать-родной #bluetooth

Вопрос:

Я обновлю этот вопрос с помощью кода в течение 5 часов. Мне нужна ваша помощь, чтобы ответить на этот вопрос:

  1. Можете ли вы выполнить сопряжение устройства Bluetooth с собственной библиотекой 2 react?
     One with SPP bluetooth profile and the other with A2DP bluetooth profile. If not, I plan to write the Android native module
     

Моя цель — поддерживать Bluetooth-микрофон для моего приложения React Native. Я намерен поддерживать Android только для MVP.

Что я сделал:

  1. Я использую react-native-bluetooth-classic для профиля последовательного порта (SPP).

    На выходе

     CR is ASCII char code 13.
    LF is ASCII char code 10.
    
    There is 4 buttons, each button send a ASCII characters with CR or LF ending:
    1. Push to talk button
       When pressing the button => C:BRGIN*${CR} =GPIO=1${CR}${LF}
       When releasing the button => C:END*${CR} =GPIO=0${CR}${LF}
    2. Select Group Up
       C:VM*${CR}
    3. Select Group Down
       C:VP*${CR}
    4. SOS Button
       C:SOS*${CR}
     

Что мне делать?:

  1. Напишите собственный модуль Android для сопряжения устройства Bluetooth с SPP и A2DP. У меня нет предыдущего опыта написания собственного модуля Android, я буду следовать руководству React Native Android Native Module
  2. Используйте react-native-bluetooth-classic для профиля Bluetooth SPP и используйте react-native-a2dp для профиля bluetooth AVRCP.

Я планирую протестировать react-native-a2dp это сегодня. Я не уверен, смогу ли я выполнить сопряжение с устройством Bluetooth, используя 2 библиотеки react-native. Я буду постоянно обновлять этот пост.

С уважением, малыш из

Редактировать

Для тех, кто ищет похожий вариант использования.

Если вы действительно заботитесь о minSdkVersion, вам следует создать свой собственный собственный модуль, react-native-bluetooth-classic требующий minSdkVersion 26, который в моем случае использования значительно уменьшает мою целевую долю рынка. Но если вы спросите мое мнение, в настоящее время я все еще использую react-native-bluetooth-classic и react-native-a2dp для MVP.

Если вы этого не сделаете:

Либо вы можете использовать react-native-bluetooth-classic react-native-a2dp library, либо создать свой собственный собственный модуль. В моем случае использование объединенной библиотеки достаточно хорошо для MVP. Хотя minSdkVersion будет проблемой в будущем.

Комментарии:

1. 1. Выполняется сопряжение с устройством, а не с сервисом. 2. A2DP и SPP — это разные профили Bluetooth, а не части друг друга. 3. A2DP определяет канал управления L2CAP, а не RFCOMM. 4. Профиль HFP определяет канал управления RFCOMM. 5. Возможно, ваше устройство имеет отдельный профиль SPP, но он не является частью A2DP.

2. Привет, как прошло тестирование? Мне любопытно, а также, если вы считаете, что react-native-bluetooth-classic добавление профилей принесет пользу, я определенно не против обсудить и принять запрос на извлечение. Возможно, вы захотите взглянуть на npmjs.com/package/react-native-audio-record , для запуска записи при поступлении соответствующей команды AT.

3. @kendavidson Я использовал ваш проект react-native-bluetooth-classic и react-native-a2dp библиотеку. Спасибо, все работает, как ожидалось. Использование следующим образом: connectToDevice startBluetoothSco для записи и stopBluetoothSco остановки.

4. @kendavidson извините за пропущенный срок для добавления PR which I promise to get back within a week but I did not, sorry . Я надеюсь, что смогу вернуться сюда в течение месяца. С тех пор я создаю серверную часть react-native-bluetooth-classic , и react-native-a2dp она достаточно хороша для MVP.

5. @MikePetrichenko Спасибо, что прояснили это. The app pair with the device not the SPP and/or A2DP . Правильно ли это? Первым шагом использования Bluetooth является connect to the device -> start the service e.g createRfcommSocketToServiceRecord for SPP and startBluetoothSco for A2DP -> прослушивание данных, отправляемых устройством Bluetooth.