Android Activity intentflilter过滤机制

| 收藏本文 下载本文 作者:ouou

下面给大家分享Android Activity intentflilter过滤机制(共含3篇),欢迎阅读!同时,但愿您也能像本文投稿人“ouou”一样,积极向本站投稿分享好文章。

Android Activity intentflilter过滤机制

篇1:Android Activity intentflilter过滤机制

一个Activity可以声明多个Action,在验证时只要通过一个即通过验证,如果Activity2声明如下3个Action:

…………

其他的应用可以通过给Intent设置Action方法调用到Activity2(如果系统中其他应用也有相同的Action,会进行列表供用户选择),如:

Intent intent=new Intent;intent.setAction(“ACTION1”);startActivity(intent);

篇2:Android Activity intentflilter过滤机制

Activity2的还可以声明多个Category验证,如下(其中DEFAULT那个是系统会自动添加的,及时没声明还是会存在的):

在其他应用中可以为Intent添加Category,当所添加的Category都在Activity2有声明是就会通过验证,如下Intent就能通过验证:

Intent intent=new Intent(); intent.setAction(“ACTION1”); intent.addCategory(“CATEGORY1”); intent.addCategory(“CATEGORY3”); startActivity(intent);

篇3:Android Activity intentflilter过滤机制

Data验证比较复杂点,可以验证Intent中设置的Mime Type和Uri。Mime Type可以指定处理的资源类型,如“audio/*”表示所有音频资源,设置MimeType:

调用的Intent 可以通过setType()或者setTypeAndNormalize()设置Mime Type,

Intent intent=new Intent(); intent.setAction(“ACTION1”); intent.setType(“audio/*”); // intent.setTypeAndNormalize(“audio/*”); startActivity(intent);

Uri比较Url范围广,格式为:scheme://host:port/path,其中scheme为协议标识如:http等,host为IP、域名等,port为端口号,path为路径,

中可以对这个几个分别进行设置验证,但是不能跳跃设置,例如设置了scheme,不设置host,直接设置port,这时port的设置将会被忽略,跟没设置port一样。在设置path,可以使用path设置整个路径,也可以使用pathPrefix设置路径以什么开头,还可以使用pathPattern设置带统配符的路径,通配符为“*”和“.*”,其中“*”和正则表达式中的“*”一样,表示前一个字符为0或任意多个,而“.”表示任意字符。如果“abc*d”可以匹配 “abcccd”,“abcd”等,“abc.*d”可以匹配“abced”,“abcfd”等。在中的设置Uri格式如下:

相应的调用Intent可以如下:

Intent intent=new Intent(); intent.setAction(“ACTION1”); Uri uri=Uri.parse(“www.google.com:8080/abc.jsp”);//匹配path // Uri uri=Uri.parse(“www.google.com:8080/index.jsp”);//匹配pathPrefix // Uri uri=Uri.parse(“www.google.com:8080/idexn”);//匹配pathPattern intent.setData(uri); startActivity(intent);

但是,需要注意的是Intent的setData()方法和setType()会相互覆盖,也就是说,如果先使用setType()设置了Mime Type,之后在使用setData()设置了Uri,那么原先设置的MimeType就会被清空,反之也相同。以下为setData()方法源码,看了就很容易理解了:

public Intent setData(Uri data) { mData = data; mType = null; return this;}

如果一个Activity的中mimeType和Uri都设置了,那就需要使用Intent的setDataAndType(Uridata, String type)进行设置咯。

总结下,如果一个Activity在中声明了Action验证、Category和Data验证,那么另一个应用要想通过隐式调用这个Activity,就必须在给Intent设置正确的参数,只有全部通过验证才能调用到这个Activity。还有一个需要注意的是,被调用的Activity的exported8属性需要设置为true(默认)才能被其他应用调用。

《过滤和结晶》

机制求职信

彻底清除 Outlook过滤垃圾邮件小窍门

机制专业自荐信

制度机制风险

三项机制发言稿

岗位机制范文

货币发行机制

盘点快乐,过滤痛苦作文1000字

工作机制怎么写

Android Activity intentflilter过滤机制(共3篇)

欢迎下载DOC格式的Android Activity intentflilter过滤机制,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档