前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从0系统学Android-2.5更多隐式Intent用法

从0系统学Android-2.5更多隐式Intent用法

作者头像
开发者
发布2019-12-26 15:08:58
4890
发布2019-12-26 15:08:58
举报
本系列文章,参考《第一行代码》,作为个人笔记

从0系统学Android-2.5更多隐式Intent用法

上一节中我们学习了通过隐式 Intent 来启动 Activity。实际上隐式 Intent 还有更多的内容。

使用隐式 Intent 我们不仅可以启动自己程序内符合要求的Activity 还可以启动其他程序中符合要求的 Activity,这也使得 Android 中多个应用程序之间的功能共享成为可能。

比如:我们需要在我们的程序中展示一个网页,则只需要调用系统浏览器来打开这个网页就可以了。

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://blog.csdn.net/sydMobile/article/details/78890731"));
startActivity(intent);

解释一下:Intent.ACTION_VIEW 这是一个 Android 系统的内置的 action。通过 Uri.parse() 方法,将一个网址字符串解析成一个 Uri 对象。给 setData 方法。Uri 对象主要用于指定当前 Intent 正在操作的数据。

上面的代码中,我们可能对 setData() 部分感到陌生。这个方法并不复杂,就是接收一个 Uri 对象。主要用于指定当前的 Intent 正在操作的数据,而这些数据通常是通过字符串的形式传入到 Uri.parse() 方法中产生。

与之对应,我们可以在 <intent-filter> 标签中再配置一个 <data> 标签。用于更精确地响应当前的 Activity 能够响应什么类型的数据。

<intent> 标签中可以配置:

  • android:scheme 用于指定数据的协议部分。比如 http
  • android:host 指定主机部分 比如:www.baid.com
  • android:path 指定主机和端口之后的部分。如一段网址跟在域名后面的内容
  • android:mimeType 指定可以处理的数据类型,可以使用通配符来指定

只有 <data> 标签中指定的内容和 Intent 中携带的数据完全一致,Activity 才可以响应。一般在 <data> 标签中不需要指定这么多的信息。

除了 http 协议以外,还有很多其他的协议,比如:geo 表示显示地理位置、tel 表示拨打电话。

展示一下调用系统拨号界面

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android开发者家园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从0系统学Android-2.5更多隐式Intent用法
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档