码迷,mamicode.com
首页 > 移动开发 > 详细

android intent-infliter 过滤验证

时间:2015-05-14 12:16:42      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

过滤分为四大类验证

<action>

<category>

<data>

<ssp>

0.四大组件可以申明多个intent-fliter标签。

1. Action验证是必选项,如果没有Action的话,验证是失败的。Action验证是或者的关系,即是满足一个就通过验证。

eg:

<intent -infliter >

         <actionandroid:name="Action1"/>

         <actionandroid:name="Action2"/>

         <actionandroid:name="Action3"/>

</intent -infliter ><

 

 

action = "Action1"

通过验证

 

2.category是可选项,验证规则是在某个intent-fliter标签申明了多个标签的话,则请求验证的intent的所有category都必须是当前请求验证的intent-fliter标签category的子集。

 

<intent -infliter >

         <category  android:name=" category 1"/>

         <category  android:name=" category2"/>

         <category  android:name=" category3"/>

</intent -infliter ><

 

eg2:

Intent intent  = new Intent();

intent .addCategory("category1");

intent .addCategory("category2");

通过验证

 

eg3:

Intent intent  = new Intent();

intent .addCategory("category1");

intent .addCategory("category2");

intent .addCategory("category4");

没有通过验证

 

 

 

 

 

3.data验证。data的格式 :    scheme://host:port/path

         3.1:验证必须是从左到右开始逐个验证不允许跳跃验证。

            eg:

         3.2:scheme是必须要有的。

         3.3:验证的属性 

a                                            android:scheme=""         

b                                            android:host=""

c                                             android:port=""

d                                            android:path=""

e                                            android:pathPattern=""

f                                             android:pathPrefix=""

g                                            android:mimeType=""

h                                            android:ssp=""                            4.4 plus

i                                              android:sspPattern=""           4.4 plus

j                                              android:sspPrefix=""               4.4 plus

 

         对于a、b、c、d他们的关系是与的关系,只有全部满足才算通过。

         对于d、e、f他们的关系是或的关系,通过任意一个都算通过。

         对于uri(a、b、c、d、e、f)和mimeType的关系是与的关系。只有全部满足才算通过。记住如果请求验证的的Intent含有uri或者mimeType,而标签含有uri或mimeType那么请求验证是失败的。反之也失败的。

4. ssp 见https:/zybuluo.com/flyouting/note/18525

注1:path 是用于完整路径匹配. eg:  /index.jsp

注2:pathPattern是路径匹配模式有两种形式  "*" 、 ".*"

         *代表的是*前的一个字符有0个或多个。 ab*c匹配  ac abc abbc abbbc

         .*代表的是 0个或多个字符串。 ab*c匹配  abc  abec  abffc abuuuuc

注3:pathPrefix是用于路径前缀匹配.  /in  匹配   /in.jsp index.jsp  .....

注4:host也可以用通配符不过host只能包含一个*的通配符,而不能包含其他字符。


android intent-infliter 过滤验证

标签:

原文地址:http://blog.csdn.net/cpp597455873/article/details/45716727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!