Хорошо, у меня есть частичный ответ для этого. Во-первых, немного больше фона:
- Я выполнял опрос потока BT в потоке, который выполнял исполняемый файл каждые 2 с
- Буфер, используемый для чтения потока, имел длину 1024 элемента
У меня было подозрение, что это может быть какой-то фоновый буфер, заканчивающийся нехваткой места. Итак, Я изменил 2 с на 500 мс, а длину 1024 на 10024. Теперь у меня было около 20 минут подключения без каких-либо проблем (и все еще продолжалось).
Было бы неплохо найти для этого пистолет для курения. Сначала я думал, что stream.Available () будет достаточно, чтобы определить, заполняется ли буфер, но в этом случае stream.Available () фактически возвращает 0, когда устройство Android перестает получать. Поэтому я не совсем уверен, какую очередь проверять, чтобы доказать, что эта проблема связана с заполнением буфера.