2

エンドポイントに代替設定を使用するインターフェイスを備えた USB デバイスがあります。「android.hardware.usb」パッケージのクラスを使用してこれらの設定を選択するにはどうすればよいですか?

ネイティブ コードでは、基本的に IOCTL である libUsb の「libusb_set_interface_alt_setting」関数を使用しています。ただし、そのために NDK を使用したくありません。

ありがとう

4

3 に答える 3

1

この質問を閉じるだけです。

デバイス用のカーネル ドライバーを作成し、それを char デバイスとして使用することで、この問題を解決しました。

set_interface_alt_settings余談ですが、ライブラリに実装し、libusbhostJNI を介して「android.hardware.usb」パッケージで使用するとよいでしょう。

于 2012-06-05T14:41:31.570 に答える
1

インターフェイスの代替設定を有効にすることは、 USB 仕様(usb_2.0.pdf)の第 9.4 章による標準デバイス要求にすぎません。

したがって、この:

UsbDeviceConnection.controlTransfer(UsbConstants.USB_DIR_OUT | 0x01, SET_INTERFACE, _alternate_setting_, _interface_nr_, null, 0, _timeout_);

動作するはずです。SET_INTERFACE (= 11 = 0x0B) は USB 仕様の定数です。Java constとしてAndroid APIで見つけることができませんでした。

于 2012-04-26T21:19:11.217 に答える