Мое приложение для Android получает последовательную связь по Bluetooth из настольного приложения. Я не могу контролировать, что делает это настольное приложение.
Использование примера кода Google BluetoothChat (https://github.com/googlesamples/android-BluetoothChat). Мне удается заставить его работать, и в некоторой степени я могу просто взять байты, поступающие в мое приложение для Android, и записать файл.
Однако функция кода выглядит примерно так:
1 - прослушивание Android
2 - ПК отправляет данные, Android принимает соединение, читает данные и записывает в файл
3 - во время чтения Android обнаруживает исключение (клиент закрывает соединение?) И закрывает соединение
4 - вернуться к одному и прослушать следующие несколько байтов
Что случилось, так это. Для обычных нескольких байтов вид отправки с ПК. Оно работает. Но когда я отправляю много байтов (от 3 КБ до 6 КБ), приложение ПК зависает после 1 успешной отправки (т. Е. Приложение Android может принять первое действие по отправке 6 КБ с ПК, но после того, как я нажму кнопку отправки, но во второй раз, приложение Android получит, но Приложение ПК будет зависать).
У меня есть два сценария
A. После Android приложение получает данные в первый раз. Я закрываю приложение для ПК, и мой код в приложении для Android получит исключение о том, что соединение закрыто. После этого я могу перезапустить приложение для ПК и снова успешно отправить. Я могу повторить это много раз, и это сработает.
B. После Android приложение получает данные в первый раз. Я не закрыл приложение для ПК и не предпринял попытку повторной отправки. Приложение для ПК рухнет!
У меня нет никакого контроля над приложением для ПК / ПК. Поэтому, пожалуйста, не предлагайте ничего, что затрагивало бы изменение работы настольного приложения или отправку данных.
Я знаю, что приложение для ПК работает. Похоже, что если отправлено много байтов, Android не получил исключение, чтобы сообщить, что соединение закрыто. Это загадка.
Пожалуйста, обратитесь к моему предыдущему вопросу, так как он во многом похож на этот!
Как сделать дамп последовательной связи в виде файла через Android Bluetooth последовательный RFCOMM