私たちはAndroid 3.1+と、OTG /ホストポートに接続されたUSBデバイスへの読み取り/書き込み機能について調査しました。
USB HIDデバイスを検出して読み書きできるコード例を見つけましたが、現時点では、展開してリモートでデバッグするための物理的な3.1+互換デバイスがありません。
PC/Eclipseを介してエミュレータにHIDデバイスを接続して、アプリがデバイスを検出および読み書きできるようにする方法を誰もが知っていますか?
現在接続されているUSBデバイスを一覧表示しようとしましたが、間違いなく推測できるように、何も表示されません。
何か案は?
乾杯
AndroidエミュレーターはQEMUに基づいています。エミュレーターのバージョンが非常に古い場合でも、ホストからのUSBデバイスの受け渡しがサポートされているようです。ARMデバイス、ただし、エミュレートされたARMマシンにはUSBコントローラーがありません。(Linux 3.4ベースのgoldfish_armv7カーネルのすべてのUSBホストコントローラーを有効にしようとしました。デフォルトのエミュレータgoldfish_armv7カーネルでは、ホストUSBも有効になっていません。)
ARMに限定されておらず、x86を使用できる場合は、 http://www.Android-x86.org/ を確認することをお勧めします。標準の [〜#〜] qemu [〜#〜] i386(またはx86_64)マシンで使用します。これにより、KVM拡張機能を使用することでパフォーマンスが向上しますLinux。
ベンダーID1234およびデバイスIDabcdのUSBデバイスをパススルーするには、エミュレーターコマンドを実行できます。
emulator -avd x86-machine -qemu -usb -usbdevice Host:1234:abcd
または、QEMUを使用する場合:
qemu-system-i386 -m 1G -cdrom Android-x86.iso -usb -usbdevice Host:1234:abcd
/dev/bus/usb/XXX/YYY
の読み取り/書き込み権限が必要になります。そのためには、次のようなudevルールを作成できます。
SUBSYSTEM!="usb", GOTO="end_skip_usb"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess"
LABEL="end_skip_usb"
これで、USBデバイスを挿入すると、エミュレータがUSBデバイスを認識するようになります。これは、LinuxインストールでAndroid x86 4.3イメージでテストされています。
Android このイメージ を使用して、virtualBoxまたはvm player上の仮想マシンを作成します。
USBを接続し、ADB接続(デバイスIP)を使用してEclipseに接続します。
インストールされたAndroidゲストは、Windows 7ホストの仮想ボックスに here からイメージAndroid-x86-4.0-r1-eeepc.isoを使用して) 「vt-xエミュレーションを有効にしないで、4.4より前のバージョンをインストールする必要がありました。)次に、USBドライブに接続し、開いたVM-設定-Virtualbox ManagerのUSBで、2番目のアイコンをクリックしましたプラス記号が付いた右側で、usbドライブを選択します。Virtualboxを選択し、USBドライブのドライバーをインストールしました。終了後、Android VM。OpenManagerを起動し、mnt/USBに移動し、 USBドライブのファイルがありました!