AndroidMainfest - intent-filter应该有多个动作吗?

Bac*_*alo 8 android android-manifest

我当前对MainActivity的intent-filter看起来像这样

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
            </intent-filter>
Run Code Online (Sandbox Code Playgroud)

请注意,有2个操作节点.它是否正确?或者每个intent-filter应该只有一个动作节点?

另外,DEFAULT类别的目的是什么?

<category android:name="android.intent.category.DEFAULT" />
Run Code Online (Sandbox Code Playgroud)

Com*_*are 9

它是否正确?

它可以,但在这种情况下,我怀疑它不是你想要的.

<intent-filter>将匹配:

  • a IntentMAIN行动和LAUNCHER类别,或

  • 一个IntentUSB_ACCESSORY_ATTACHEDLAUNCHER类别

前者很常见.但是,我更怀疑USB_ACCESSORY_ATTACHED将与该LAUNCHER类别一起使用.我甚至不确定它是否与活动一起使用,因为文档在这一点上有点混乱.


小智 5

根据您的活动需要,意图过滤器可以有多个操作.例如,如果您的应用程序从社交共享应用程序接收一个或多个图像,那么您将使用

<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
Run Code Online (Sandbox Code Playgroud)

有关参考,请参阅本文的" 示例过滤器"部分.