5

USB アクセサリのプラグを抜き差しした後、再接続する際に問題があります。アクセサリを初めて接続すると、デバイスと実際に通信するためのすべての手順を実行できます

  1. アクセサリを列挙する
  2. アクセサリへのアクセス許可を取得する
  3. アクセサリを開く
  4. FileDescriptor の I/O ストリームを使用してデバイスの読み取りと書き込みを行う

ケーブルを抜き差しすると、上記の最初の 2 つの手順を完了することができます。問題は、UsbManager のオープン アクセサリが ParcelFileDescriptor として null を返すことです。何が原因でしょうか? 一部のリソースがまだ予約されているため、Android がデバイスへのアクセスを許可できない可能性がありますか? openAccessory を呼び出す前に、I/O ストリームを解放し、ParcelFileDescriptor を閉じています。アクセサリを適切にクリーンアップするために他にすべきことはありますか? USB アクセサリに関する公式ドキュメント ページには、通信の終了に関するセクションがありますが、あまり役に立ちません。

http://developer.android.com/guide/topics/connectivity/usb/accessory.html

4

0 に答える 0