Проясните, пожалуйста, такой момент.
Программа обращается к удаленному устройству при помощи (FileInputStream) inputstream.read(). Допустим устройство зависло, и не отвечает совсем. Поток будет находиться в таком блокирующем состоянии бесконечно долго. Послать какой-нибудь dummy байт в поток я не могу (нет loopback). Как корректно прервать? Завести еще один поток, который будет отслеживать состояния зависания потока с блокирующим read и прервать выполнение потока?
Тогда вопрос, как прервать корректно поток с read()?
В отличие от windows тут нет никакого тайм-аута на выполнение операции read()?
ЗЫ: Обмен идет в режиме USB Accessory, устройство не отключено, просто зависло. Может такое быть, что при этом Broadcast Receiver не получит сообщение ACTION_USB_ACCESSORY_DETACHED?
А если и получит, как корректно прервать поток с блокирующим read()?