最終更新:2021-10-17 (日) 19:55:44 (893d)
Android/USB Host API
http://developer.android.com/guide/topics/connectivity/usb/host.html
http://www.techdoctranslator.com/android/guide/usb/host
スライド
ADKとの違い
概要
- アプリが直接USBデバイスを制御するためのAPI
- JavaのAPIを使ってUSBデバイスのドライバが書ける
- OSが対応しているデバイスは扱えない
デバイスの制御方法
- 事前にデバイス情報をAndroidManifest.xmlのmeta-dataに記述しておき、接続と同時にデバイスを認識する方法。
- UsbManagerを使って一定時間おきにデバイス情報の更新を監視して、デバイスを認識する方法。
AndroidManifest.xml
android.hardware.usb
- android.hardware.usb.UsbAccessory
- android.hardware.usb.UsbConstants
- android.hardware.usb.UsbDevice
- android.hardware.usb.UsbDeviceConnection
- android.hardware.usb.UsbEndpoint?
- android.hardware.usb.UsbInterface?
- android.hardware.usb.UsbManager
- android.hardware.usb.UsbRequest?
ソースコード
インテント
ライブラリ
互換性確認ツール
- USB Host Viewer
- USB Device Info
- USB Host Test?
メモ
ホスト側の設定で認識されない場合
- Android/system/etc/permissions/android.hardware.usb.host.xml?に
<permissions> <feature name="android.hardware.usb.host"/> </permissions>
- Android/system/etc/permissions/handheld_core_hardware.xml?かAndroid/system/etc/permissions/tablet_core_hardware.xml?に
<feature name="android.hardware.usb.host" />
- を追加
ブラックリスト
- USBハブ
- HID boot devices (mouse and keyboard)