2016-10-29 4 views
0

私はUSBバスを列挙してデバイスを検索するアンドロイドアプリを持っています。 ディスク上のキーまたはarduinoボードをバスに接続すると、アプリケーションは接続されているデバイスの検出と列挙を管理します。しかし、私はHID(キーボードとマウスのUSBドングル)を使用すると、アプリケーションはそれを列挙しません - 電話はドングルを認識し、キーボードとマウスを使用することができます 別のusbデバイス(RFドングル)私はそれが動作するかどうかは分からない(多分デバイスのファームウェアを調整する必要がある)。android - UsbManager.getDeviceList()は一部のデバイスで空を返します

これまでのこと: * Androidマニフェストに追加されました。 * android.hardware.usb.host.xmlは、/ system/etc/permissionsフォルダ内のAndroid デバイスに存在することを確認しました。

いくつかのデバイスでは動作しますが、他のデバイスでは動作しないため、何が間違っているかわかりません。

おかげ

+0

更新:lsusbコマンドを使用して、接続されたUSBデバイスをLinux端末でチェックしたところ、デバイスが接続されていることが確認できました。だから私は、デバイスのファームウェアが正常に動作すると確信しています。 アイデア – eng

答えて

0

HIDクラスはUsbManager.java

/* returns true if the USB device should not be accessible by applications */ 
private boolean isBlackListed(int clazz, int subClass, int protocol) { 
    // blacklist hubs 
    if (clazz == UsbConstants.USB_CLASS_HUB) return true; 
    // blacklist HID boot devices (mouse and keyboard) 
    if (clazz == UsbConstants.USB_CLASS_HID && 
      subClass == UsbConstants.USB_INTERFACE_SUBCLASS_BOOT) { 
     return true; 
    } 
    return false; 
} 

によってブロックされた、それはあなたが言及したRFドングルをRFcatされますか?私は同じ問題を抱えていましたが、私はXceedを使用して、 "isBlackListed"メソッドを常にfalseに置き換えようとします。私は試してみた後であなたに知らせます。

関連する問題