2015-01-06 2 views
1

У меня есть следующий случай использования:Передача данных на Android устройства, сразу же после подключения к USB, приводит к тайм-аут

  1. App работает на телефоне.
  2. Пользователь подключает аксессуар к телефону.
  3. Аксессуар помещает телефон в режим аксессуаров.
  4. После повторного подключения и открытия правой конечной точки USB, аксессуар немедленно пытается отправить данные в приложение.

На шаге 4 я получаю USB error 7: Transfer error on bulk endpoint: Operation timed out на аксессуаре. Предположительно, это происходит потому, что приложение еще не открыло InputStream.

Каков правильный способ справиться с этой ситуацией?

ответ

0

Решение оказалось для увеличения тайм-аута для USB-передач. Я использую USB4Java, и он имеет тайм-аут по умолчанию 5 секунд. Когда тайм-аут был увеличен, оказалось, что для завершения первой передачи потребовалось 15 секунд. Поэтому я установил его на 30 секунд.

0

Как вы, наверное, знаете, USB в лучшем случае сломанный, поэтому я буду искать проблемы с драйвером и/или перезапустить хост-машину и телефон. Это единственное предложение, которое я предполагаю, что настройки USB хороши на устройстве.

У этого StackOverflow Question есть много ответов, на которые я бы посмотрел, некоторые из них не так очевидны, как не использование порта USB3.

+0

Это не имеет отношения к заданному вопросу, который * не включает * подключение телефона к обычным настольным компьютерам. Пожалуйста, уделите время изучению того, какой режим аксессуаров на самом деле. –

+0

[answer] (http://stackoverflow.com/a/4786299/971090) на этот вопрос оказался очень полезным. См. Мой ответ. –

Смежные вопросы