[磨刀霍霍]Intent常用ACTION探索——发现uri

写在前面的话:

昨天小生在做那个恬不知耻的DEMO时,对于Intent的ACTION很是迷惑。遂跑去查看了API手册,也许是我打开的方式不对,找了半天找不到调用短信应用的uri写法,于是乎各种谷歌百度。经过前前后后,反反复复的各种翻页,终于让我知道以后如果我想用uri,应该怎么去写了。然后就有了这篇文章,一来与各位朋友分享,二来留个地儿以备将来的回顾。


——————————————————————————————————————————————————————————————————————————————


在上面,我已经提到过,我昨天在做那个逗逼的应用时,对怎么用intent调用系统短信应用的时候很是迷惑。我查看了手册,里面倒是有:ACTION_DIAL tel:123、ACTION_VIEW content://contacts/people/1 等example,如果也有个ACTION_SENDTO sendto:123这样的e.g.,估计也就不会出现这篇文章了。


之后我去搜集了一些相关资料,然后学习了一下uri,嗯,发现这东西说白了还真是(自)(欺)(欺)(人)。。。。。。


先上一张从wiki扒下来的图:


这图剖析了三条地址,分别是

foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose 

urn:example:animal:ferret:nose

mailto:username@example.com?subject=Topic


不难发现,一个uri的结构如下所示:

<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]

<scheme name>:代表协议名称,如上文的foo、urn、mailto。

<hierarchical part>:用来识别地址信息的。如果这一部分是用//开始的,那之后还会跟有authority和path两个参数;否者,它只包含path这个参数。

<authority>:包含user-information部分,并用“@”结尾;hostname部分;port number部分,并用”:”开头。如上文的“username:password@example.com:8042"。

<path>:这东西就是路径,英文叫路径,中文也叫路径。

<query>:可选参数,使用“;”隔开或“&”隔开的键值对<key>=<value>,一般用来存放额外的验证信息。

<fragment>:可选参数,用“#”来与前面的部分相隔,它保存的也是额外的验证信息,它提供了二次指向资源的功能,简单来说就是指名道姓的告诉服务器你要看的资源。


总结:

了解了uri的结构,本文的内容也差不多介绍完了,以后我们在使用Intent的ACTION,遇到需要自己编写uri的时候,就可以有的放矢的去做了。

另外,打个广告:自从有了WIKI,妈妈再也不用担心我的学习了呢。。


附录:

一、scheme查找资源:scheme是有个标准的,具体内容详见Section 2.2 of RFC 2026。同时,我也扣出来了,但是为了简短文章长度,写在我另一篇博文里,这里附上飞机票一张:[附录]URI的资源。

二、Intent常见的ACTION:同样的,飞机票一张:[附录]Intent常见的ACTION使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值