RFCOMM получает данные с отсутствующим 1 пакетом L2CAP

Я написал приложение для Android, используя блютуз RFCOMM. Я отправляю 1 МБ данных в приложение для Android через тот же RFCOMM UUID.

Я заметил, что в моем приложении пропущен 1 пакет данных L2CAP. Смотрите ниже информацию для более подробной информации.

Мой мобильный телефон Android с поддержкой максимальной полезной нагрузки RFCOMM составляет 990 байт, поэтому удаленное устройство отправляет каждый пакет L2CAP с полезной нагрузкой 990 байт. Всякий раз, когда я отправляю данные 1 КБ с удаленного устройства, они делятся на 2 пакета L2CAP по 990 и 34 байта каждый.

Получив данные в своем приложении для Android, я проверил данные размером 1 КБ, там я заметил 1 пакет L2CAP, т. Е. 990 байт было пропущено в Android.

Я проверил всю отправку данных с удаленного устройства с помощью анализаторов. Он отлично отправляет 1 МБ данных без каких-либо сбоев.

Но только в моем приложении для Android я не могу получить. Это не проблема с моим приложением, потому что я использовал пример кода Bluetooth Chat здесь.

Я проверял это несколько раз, 990 байт потерянных данных не совпадают с индексом в 1 МБ данных каждый раз, когда я запускаю тест.

Я проверил это с 3 мобильными телефонами версий Android 2.2, 2.3.3 и 2.3.6, каждая из которых сталкивалась с одной и той же проблемой.

Но я не получаю никаких исключений при получении данных из InputStream сокета RFCOMM.

Если кто-нибудь сталкивался и решил мою проблему, пожалуйста, помогите мне.

2 ответа

Возможно, вы захотите очистить поток после отправки всех данных. Возможно, RFCOMM может буферизовать некоторые данные, ожидающие заполнения его PDU. Посмотрите это - OutputStream:: flush ()

Можете ли вы проверить с помощью инструмента HCIDump данные ACL, передаваемые / получаемые между двумя устройствами. Если данные совпадают с пакетами данных HCL ACL / отправлены и получены, то L2CAP на принимающем конце отбрасывает некоторый пакет.

Посмотрите на эту ссылку и посмотрите, может ли mtu вызвать эту проблему.

http://people.csail.mit.edu/albert/bluez-intro/x559.html

Спасибо Маниваннан

Другие вопросы по тегам