1) Как правило, соединения Bluetooth могут инициироваться любым устройством. Например, с телефоном и компьютером вы можете установить соединение с любой стороны. С телефоном и дисплеем или гарнитурой на одном устройстве может отсутствовать интерфейс ввода, поэтому вы можете инициировать соединения с телефона. Устройства также могут автоматически согласовывать переключение ролей, так что они меняют главные / подчиненные роли.
2) Если у вас есть непрерывные данные для обмена или вам требуется низкая задержка, соединение обычно будет отключено. Если у вас есть только редкие сообщения для обмена, разрыв соединения приведет к экономии энергии, поскольку устройства поддерживают синхронизацию соединения путем обмена нулевыми пакетами.
3) Вы не можете поддерживать соединение с устройствами вне зоны действия. Если они не могут общаться в течение некоторого времени ожидания (порядка секунд), они теряют синхронизацию и разрывают соединение.
4) Обратите внимание, что телефон / гарнитура не используют соединения RFCOMM, а HSP (профиль гарнитуры). Соединения для изохронных речевых данных по своей природе отличаются от спорадических соединений для передачи данных, таких как RFCOMM.
5) Хороший способ увидеть, как "настоящие" устройства взаимодействуют, - это использовать такие инструменты, как hcidump, как часть стека linux blueZ. Это позволяет полностью прослушивать сообщения протокола, которые появляются при подключении устройств.