USB_DEVICE_ATTACHED インテントが発動しない 質問する

USB_DEVICE_ATTACHED インテントが発動しない 質問する

android.hardware.usb.action.USB_DEVICE_ATTACHED" を動作させることに成功した人はいますか?

わかりました。新しい USB ホスト モード機能を使用して、USB デバイスが接続されたことを検出しようとしています。私の目的としては、デバイスが接続されるたびに通知を受け取りたいのですが、それが起こっているのを見ることができませんでした。動作することがわかっているブロードキャスト レシーバーを使用しています (ホーム ボタンが押されたなどの他のものをリッスンするように設定している場合)。何を試しても、発射の意図を取得できないようです...。そのため、物事を簡単にするために、プロジェクトを忘れて、Google 独自のサンプル コードを使用して、少なくともそれが機能するかどうかを確認することにしました。ミサイル ランチャーは 1 つも持っていませんが、少なくとも 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 ソースのバグであると考えられます。ちなみに、私は OS 3.1 で Wi-Fi Xoom を使用しています。

ベストアンサー1

私も同じ問題を抱えていました。最終的に、デバイス フィルター XML に次の行を追加する必要があることがわかりました。

<usb-device vendor-id-"xxxxx" product-id="yyyyy">

xxxxx と yyyyy は 10 進数でなければなりません。16 進コードではありません。そうすれば、すべて宣伝どおりに動作します。遅くなりましたが、お役に立てれば幸いです。

おすすめ記事