本节目录:
- 使用隐式 Intent
- 隐式 Intent 的组成
- 执行操作
- 数据的位置
- 涉及的数据类型
- 可选类别
- 一些实例
最近学习《Android 权威编著》,这几天学的总结一下,加深印象,也是方便以后忘记了,能快速找到相关内容,本节主要是关于 隐式 Intent 的使用
使用隐式 Intent
隐式 Intent 区别与显示 Intent 的主要区别在于,在实现 Intent 通信我们不需要想显示 Intent 提供以及编写指定具体的 activity,只需要告诉操作系统我们想要做什么,通过系统内置的属性就可以简单实现我们想要的。
隐式 Intent 的组成
执行操作
通常 Intent 类中的常量来表示。
- Intent.ACTION_VIEW 查看某个 URL
- Intent.ACTION_SEND 发送邮件
- Intent.ACTION_DITL 拨号界面等待拨号
- Intent.ACTION_CALL 拨打电话
数据的位置
- 设备外的资源使用 URL
- 指向文件的 URI
- 指向 ContentProvider 中的某个内容 URI (content URI)
涉及的数据类型
MIME 数据类型,如 text/html , audio/mpeg3.如果一个 intent 包含数据位置,那么通常可以从中推测出数据的类型
可选类别
如果操作用于描述具体要做什么,那么通常用来描述我们是何时、何地或者如何使用某个 activity 的。
- 通过简单的 Intent
- 通过配置文件的 intent 过滤器
一些实例
- 打开短信,发送消息
|
|
使用 ShareCompat 类创建发送消息
- 打开联系人,选择联系人
|
|
这需要处理返回的 Intent ,因为系统会把联系人数据发送个 Intent,其中包含了临时的权限。onActivityResult方法中一下注释前是通过 查询名称,注释后查询电话号,并拨打电话
|
|
- 打开相机
|
|
因为 Intent 打开应用两种情况,一种是很多应用支持,可以使用选择器。一种是没有内置的应用,这种情况会让应用崩溃,可以通过 packageManager 自检,如果没有就,禁用按钮
|
|