接続された USB アクセサリの接続を監視するために使用しているサービスがあります。このサービスは、 では問題なくインテントを取得しますACTION_USB_ACCESSORY_DETACHED
が、 ではインテントを取得しませんACTION_USB_ACCESSORY_ATTACHED
。
同じことがアクティビティにも当てはまります。つまり、アクティビティは実際には actionACTION_USB_ACCESSORY_ATTACHED
でインテントを取得するようには見えず、代わりにMAIN
アクティビティのonResume
メソッドを呼び出すインテント アクションを取得します。理想的ではありませんが、この動作により、onResume
メソッドを適切にコーディングすることでアクティビティを回避できます。次を参照してください:インテント フィルターが USB_ACCESSORY_ATTACHED の onReceive を呼び出していない
残念ながら、私はonResume
サービスにメソッドを持っていないため、アクティビティで使用できる回避策を使用できません。ただし、USB アクセサリが接続されている場合、システムは何かをブロードキャストしている必要があります。この意図は何ですか。この意図を受信できるサービスはありますか?
Android は、USB アタッチ/デタッチ インテントをブロードキャストするための奇妙な方法論を実装しているようです。分離されたイベントを簡単に取得できて、添付されたイベントを取得できない理由がわかりません。これはバグであるか、実装が不十分である可能性があります。