Thinkpad Tablet (Android 3.1) を使って USB
デバイスを接続しそのデバイスとやりとりするアプリケーションを書こうとしていましたが、ターゲットの USB
デバイスが認識できずつまづいています。
ターゲットの USB デバイスは Wacom Intuos 3 PTZ-630 です。
Android Developers の USB Host の記事を参考に作業を進めました。
- http://developer.android.com/guide/topics/usb/host.html
まず最初に、ターゲットのデバイスが接続されたとき飛ばされる Intent を受けるアプリケーションを作成しました。
Eclipse の新規プロジェクトで Android Project
を作成し、AndroidManifest.xml、res/xml/device_filter.xml に以下の内容を追記しました。
* AndroidManifest.xml
<activity ...>
...
<intent-filter>
<action
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
* res/xml/device_filter.xml (新規作成)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="1386" product-id="0178" />
<usb-device vendor-id="1133" product-id="49730" />
</resources>
device_filter.xml の usb-device の一つ目が、Wacom Intuos 3 PTZ-630
です。二行目は確認用の logicool のゲームパッドです。
このアプリケーションを Thinkpad Tablet
にインストールし、ゲームパッドを挿すと「このデバイスを接続したとき、当該アプリケーションを起動しますか?」のような旨のダイアログが現れます。しかし、Wacom
Intuos 3 を接続してもこのダイアログは出現しません。
次に、別のアプリケーションを作成し、接続している USB のデバイスリストを Log へ出力させてみました。
以下のコードを Activity のサブクラスの onCreate 内に記述しました。
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while(deviceIterator.hasNext()){
UsbDevice device = deviceIterator.next();
Log.d(TAG, device.toString());
}
USB デバイスを接続した上でこのアプリケーションを接続すると、前述のゲームパッドはログにデバイス情報が出力されましたが、Wacom
Intuos 3 の場合は出力されませんでした。
このようにターゲットとしている USB デバイスの接続情報が取れない状況です。
そこでお聞きしたいのですが、上記の方法で接続情報が取れないということはこのターゲットは接続できない、という判断になるのでしょうか、または他に方法があるのでしょうか、接続は見えないが通信はできるということがありえるのでしょうか。
以上、ご確認のほどよろしくお願いします。
では失礼します。
リプライありがとうございます、桜井です。
> 3.1のUSBホストでは、システムが、マスストレージと、HIDのマウス、キーボードをフックしており
> デバイスリストに認識されません。また、Attachイベントも発行されません。
なるほど、なんでも大丈夫というわけではないのですね。
> 推測ですが、Wacom Intuos 3 PTZ-630は、マウスとして認識されているのではないでしょうか
> つなげるとマウスカーソルが画面に出ていないでしょうか
確認してみたところ、マウスカーソルは出現しませんでした。
また確認に、USB マウスを接続したところ、この場合はマウスカーソルが出現しました。
どうも無理そうなので、Intuos3 の接続は諦めて USB シリアル接続経由でシリアル接続タイプの Intuos での接続を試みてみます。
以上、ご確認のほどよろしくお願いします。
では、失礼します。
2011年11月7日21:58 androkun <andr...@gmail.com>:
リプライありがとうございます、桜井です。
> Wacom Intuos 3 PTZ-630をつなげて、電磁ペンを有効領域においてみて、カーソルは出ないでしょうか?
はい、ペンをタブレットの領域内で動かしてみてもマウスカーソルが出現したり、クリックイベントが発生したりしませんでした。
> USBシリアル変換は、別のスレッドで参加に議論されていますので、そちらを参考にすれば良いかと思います。
そちらのスレッドの方も読ませていただいています、ご指摘ありがとうございます。
以上、ご確認のほどよろしくお願いします。
では、失礼します。
2011年11月7日22:57 androkun <andr...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>