【Android】USB Hostで使用するためのvendor-idとproduct-idを調べる方法

【Android】USB Hostで使用するためのvendor-idとproduct-idを調べる方法

Android で PC 用のデバイス(NFC リーダーやカードスキャナなど)を動かす時に Android 3.1 以降から対応している USB Host の機能を使ってデバイスから信号を受け取ることができる。 その時に vendor-id と product-id を device-filter.xml とかに記述しておかなければならないのだが、その時に調べ方がわからなかったのでメモ。

Windows での調べ方

「ブログラムとファイルの検索」のところに「デバイスマネージャ」と入力し、デバイスマネージャを起動する。 vendor-id と product-id を調べたいデバイスのところで「右クリック -> プロパティ」をクリックする 「詳細」タブを選択し、セレクトボックスの中から「ハードウェア ID」を選択する 下記のように「VID_0566」の 0566 が vendor-id、「PID_3107」の 3107 が product-id です。

デバイスのプロパティ

あとは AndroidManifest.xml ののところに

<meta-data
                android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
                android:resource="@xml/device_filter" />

と書いて

「res/xml/device_filter.xml」に

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <usb-device vendor-id="566" product-id="3107" />
</resources>

こんな風に追加してやればプラグアンドプレイっぽく USB を挿した時にデバイスの認識がされる・・・はず。 信号の受信などは各デバイス毎に異なるのでそれぞれの機器のリファレンスなどを読んで下さい(´・ω・`)