USB_DEVICE_ATTACHED Намерение не срабатывает - PullRequest
26 голосов
/ 28 мая 2011

Кто-нибудь мог заставить работать android.hardware.usb.action.USB_DEVICE_ATTACHED "?

Хорошо, поэтому я пытаюсь использовать новые функции режима хоста USB, чтобы определить, когда USBУстройство подключено. Для моих целей я хочу получать уведомления в любое время, когда подключено устройство. Я не смог увидеть, как это происходит. Я использую вещательный приемник, который, как я знаю, работает (когда он у меня прослушивается, например, для других целей).нажата кнопка «домой». Неважно, что я пытаюсь, у меня, похоже, нет цели уволиться .... Поэтому, чтобы упростить ситуацию, я решил забыть о своем проекте и попытаться использовать собственный пример кода Google и посмотреть, смогу ли яможет, по крайней мере, сделать эту работу. У меня нет одного из ракетных пусковых установок, но я подумал, что могу, по крайней мере, получить USB_Device_Attached для стрельбы. Нет движения. Я адаптировал код для работы для других устройств. Сначала я попытался настроить устройствофильтр xml. Я добавил свое устройство (клавиатуру):

<usb-device vendor-id="1050" product-id="0010" />

Я получил поставщика и продукт по команде lsusb. Когда устройство подключеноlogcat показывает, что устройство найдено

D/EventHub(  144): No input device configuration file found for device 'Yubico Yubico Yubikey II'.
I/EventHub(  144): New device: id=43, fd=219, path='/dev/input/event8', name='Yubico Yubico Yubikey II', classes=0x80000003, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false
I/InputReader(  144): Device added: id=43, name='Yubico Yubico Yubikey II', sources=0x00000101
I/ActivityManager(  144): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=2/1/1 nav=1/2 orien=L layout=0x10000014 uiMode=0x11 seq=47}
D/MissileLauncherActivity(16191): intent: android.intent.action.MAIN
I/EventHub(  144): Removed device: path=/dev/input/event8 name=Yubico Yubico Yubikey II id=43 fd=219 classes=0x80000003
I/InputReader(  144): Device removed: id=43, name='Yubico Yubico Yubikey II', sources=0x00000101
I/ActivityManager(  144): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=1/1/2 nav=1/2 orien=L layout=0x10000014 uiMode=0x11 seq=48}
D/dalvikvm(  144): GC_EXPLICIT freed 78K, 26% free 14717K/19719K, paused 3ms+3ms
D/MissileLauncherActivity(16191): intent: android.intent.action.MAIN

Xoom находит клавиатуру и ее можно использовать с устройства (я могу использовать ее в браузере для ввода букв).И умышленное срабатывание (но оно запускает только android.intent.action.MAIN), я никогда не получаю намерение DEVICE_ATTACHED.Запись в журнале происходит из примера кода:

Log.d(TAG, "intent: " + intent.getAction().toString());

В функции возобновления.После дополнительных копаний и удаления любых ссылок на usb я обнаружил, что каждое приложение, которое я создаю, получает резюме, вызываемое, когда клавиатура присоединяется / отсоединяется (отсюда и запись в журнале intent: android.intent.action.MAIN).Прямо сейчас, единственное, что я могу понять, это то, что это ошибка в источнике Android.Кстати, я использую Wi-Fi Xoom с ОС 3.1.

Ответы [ 11 ]

0 голосов
/ 19 августа 2014

Из моего тестирования Android может запускать намерение, когда подключено устройство HID.(Пример приложения MissileLauncher делает именно это. См. Пример исходного кода для получения дополнительной информации.)

Устройство HID для Missile Launcher (Dream Cheeky USB Missle Launcher) имеет свой подкласс и протокол, установленный на 0x00.Для получения дополнительной информации см .: http://www.mattcutts.com/blog/playing-with-a-usb-missile-launcher/

Предостережение заключается в том, что Android не бросает намерение специально для устройств с мышью и клавиатурой (возможно, больше).Однако я могу обнаружить устройства HID, у которых InterfaceClass = 0x03, InterfaceSubClass = 0x00, InterfaceProtocol = 0x00.Для моего приложения мое HID-устройство является встроенным контроллером, поэтому настройка подкласса и протокола не является проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...