<intent-filter>
<action android:name="com.syy.note.a"/>
<action android:name="com.syy.note.b"/>
<category android:name="com.syy.category.c"/>
<category android:name="com.syy.category.d"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
action
匹配规则:必须有,且必须和filter中action属性的一个匹配。
category
匹配规则:
可以没有,没有时则匹配"android.intent.catetory.DEFAULT",因此配置<intent-filter>时category属性中必须有"android.intent.catetory.DEFAULT";
如果有,则必须和filter中catetory属性的一个匹配。
data
匹配规则:必须有,且必须和filter中data属性匹配,data语法如下:
<data android:scheme="string"
android:host="string"
android:port="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:mimeType="string" />
data由mimeType和URI两部分组成,mimeType指媒体类型,比如image/jpeg、vidio/*等,URI结构:
<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]
通过setDataAndType方法为intent指定data:
intent.setDataAndType(Uri.parse("file://abc"),"image/png");
综上所述
我们可以为文章开头的intent-filter给出匹配它的Intent:
Intent intent = new Intent("com.syy.note.a");
intent.addCategory("com.syy.category.c");
intent.setDataAndType(Uri.parse("file://abc"),"text/plain");
startActivity(intent);