2015-09-16 8 views
9

私はAndroidデバイスに接続されたゲームコントローラを持っていますが、これは1つのインタフェースとエンドポイントの割り込みを持っています。私は、Androidがエンドポイントを列挙するときにエンドポイント0(コントロールエンドポイント)を列挙していることを知っています。他のエンドポイントのいずれかを介して送信するだけでエンドポイント0に制御転送を行うことができます。コントロールポイントをエンドポイント0に転送する前にインターフェイスを要求する必要がありますか?

私の質問は:私はこのコントロールを転送する前に、インターフェイス(任意のインターフェイス)を要求する必要がありますか? Androidフレームワークでは、技術的にはどのインターフェースにも属していないエンドポイント0と通信する前に、インターフェースへの排他的アクセス権が必要ですか?

答えて

2

はい。インターフェースを要求することなく、controlTransferのコールが失敗することがわかります。

残念ながら、主張すると、USBデバイスがカーネルドライバから切断されます。たとえば、使用中にUSBマウスの解像度を変更すると、変更後、マウスはAndroidデバイスを制御しなくなります。

+0

実際、私はこのQ&Aを頭から出すことができず、かなりの時間を研究していました。私は、USBデバイスがAndroidによって使用されている間、 'controlTransfer'を送信する可能性はあまりないとは信じられません。そうしないと、Androidが無視するデバイスの詳細をすべて設定することはできません。 –

関連する問題