Android系列课程之十二:Intents and Intent Filters(三)

Android系列教程之十二:Intents and Intent Filters(三)接上节继续。。版权所有:飞雪无情,转载请注明出处:ht

Android系列教程之十二:Intents and Intent Filters(三)
接上节继续。。版权所有:飞雪无情,转载请注明出处:http://flysnow.iteye.com/blog/978225

Android开发技术交流群86686524(已满)请加120059404

Android系列教程目录:
    Android教程之一:Window下搭建Android开发环境Android教程之二:Linux下搭建Android开发环境Android教程之三:第一个Android应用,HelloWorldAndroid系列教程之四:Android项目的目录结构Android系列教程之五:Activity的生命周期Android系列教程之六:TextView小组件的使用--附带超链接和跑马灯效果Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示Android系列教程之八:ListView组件的使用Android系列教程之九:GridView组件的使用Android系列教程之十:Intents and Intent Filters(一)Android系列教程之十一:Intents and Intent Filters(二)
数据(data)检测

data标记也是在intent-filter中定义的,大致格式如下:

?这时我们运行程序,单击“打开拨号界面并输入电话123456”就会打开系统的自带的拨号界面,并且默认已经录入了要拨打的号码“123456”。效果图如下:Android系列课程之十二:Intents and Intent Filters(三)?Android系列课程之十二:Intents and Intent Filters(三)? 然后我们实现第二功能-txt文件阅读器

新建TextWatcherActivity代码如下:

选择“查看TXT文件”,就可以看到我们的txt内容:
Android系列课程之十二:Intents and Intent Filters(三)

最后实现第三个功能--图片查看器

新建ImageWatcherActivity,代码如下:


?
Android系列课程之十二:Intents and Intent Filters(三)

数据(data)检测小结

对于data的匹配,如果说怎么怎么匹配,在什么情况下通过可能会比较难以理解,这里以一种简单的方式来解说。

假定我们定义的Intent Filter 的data标签为集合A,传递的Intent中包含的data为集合B,当B是A的子集时就通过了(Action和Category也得检测通过)。如果B为空(不配置data),那么A也得为空(不配置data)才能通过。更详细(繁琐)的介绍请参考doc

?

Intents and Intent Filters总结

Android提供了以Intent的方式调用Android设备的内置Google应用,比如打电话,调用Google浏览器打开网页,搜索等。关于这方便的介绍可以参考Android开发文档《Intents List: Invoking Google Applications on Android Devices》这一节的介绍,很详细。docs/guide/appendix/g-app-intents.html。


Intent是一个很好的设计,它提供了一种在各个组建之间通信的方式,也为我们使用其他的应用的功能提供了可能,这样如果我们想在自己的应用打开一个网页,我们就不用特意迁入一个webview,我们直接调用Android内的浏览器打开即可。。


最后值得一提的是PackageManager这个类中为我们提供了一系列的query...()方法,可以让我们根据我们定义的Intent查询特定的匹配Intent Filter标记的所有组件。。有兴趣的可以研究一下。。

3 楼 fortianwei 2011-05-15   楼主在吗,请问你有没有弄android付费软件?需要LVL授权验证那个?我现在遇到的问题就是:不管是谁的手机测试,返回的都是LICENSED,都自动回调allow()函数,付费软件默认的不应该是NOT_LICENSED的吗?如果楼主看到了还请您帮帮我啊。 4 楼 飞雪无情 2011-05-15   fortianwei 写道楼主在吗,请问你有没有弄android付费软件?需要LVL授权验证那个?我现在遇到的问题就是:不管是谁的手机测试,返回的都是LICENSED,都自动回调allow()函数,付费软件默认的不应该是NOT_LICENSED的吗?如果楼主看到了还请您帮帮我啊。不好意思,美做过付费的,这个没有研究过,不过应该需要Google Market的License