Редактировать: Исправлены некоторые ошибки.
В интернете нет хорошей информации об этом - и много это неверно - никому не доверяй!
В частности, эти две вещи не true:
- RFCOMM и SPP (профиль последовательного порта) являются двумя именами для одной и той же вещи.(Однако они очень тесно связаны.)
- Нет необходимости устанавливать скорость передачи для соединения RFCOMM / SPP.
Вот что я нашел:
Последовательные соединения Bluetooth выполняются, как описано в SPP, используя RFCOMM .RFCOMM - это соединение, которое работает через L2CAP и позволяет отправлять последовательные данные и параметры управления в кадрах.Он основан на древнем стандарте под названием TS 07.10 .SPP - это профиль Bluetooth.
Это кадрирование также позволяет отправлять внеполосные данные для таких вещей, как управление последовательными сигналами (DTR, CTS и т. Д.) И для установки скорости передачи .
Из спецификации SPP:
DevA может информировать DevB о настройках порта RS232 с помощью команды согласования удаленного порта непосредственно перед установкой DLC.Это необходимо сделать, если API для уровня адаптации RFCOMM предоставляет эти настройки (например, скорость передачи, четность).
К сожалению, Android вообще не предоставляет эту функциональность.Я полагаю, что возможно отправить команду согласования удаленного порта самостоятельно, но я уверен, что для этого потребуется переопределить RFCOMM, который требует доступа к L2CAP , которого у нас нет.
Подробная команда согласования удаленного порта здесь стр. 31. Примечание «Для всех параметров назначены значения по умолчанию, , если согласование не выполняется, выбирается значение по умолчанию .»
Поэтому невозможно установить скорость передачи данных на Android.Он будет использовать скорость передачи по умолчанию, которую использует ваш адаптер Bluetooth (вероятно, 9600).
Также обратите внимание, что Windows поддерживает поддержку установки скорости передачи адаптеров Bluetooth.