#android #react-native #bluetooth
#Android #реагировать-родной #bluetooth
Вопрос:
Я обновлю этот вопрос с помощью кода в течение 5 часов. Мне нужна ваша помощь, чтобы ответить на этот вопрос:
- Можете ли вы выполнить сопряжение устройства 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.
Что я сделал:
- Я использую
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}
Что мне делать?:
- Напишите собственный модуль Android для сопряжения устройства Bluetooth с SPP и A2DP. У меня нет предыдущего опыта написания собственного модуля Android, я буду следовать руководству React Native Android Native Module
- Используйте
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.