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

本系列文章,参考《第一行代码》,做为我的笔记java

更多内容:更多精品文章分类 android

声明

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

上一节中咱们学习了经过隐式 Intent 来启动 Activity。实际上隐式 Intent 还有更多的内容。浏览器

使用隐式 Intent 咱们不只能够启动本身程序内符合要求的Activity 还能够启动其余程序中符合要求的 Activity,这也使得 Android 中多个应用程序之间的功能共享成为可能。学习

好比:咱们须要在咱们的程序中展现一个网页,则只须要调用系统浏览器来打开这个网页就能够了。spa

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 正在操做的数据。.net

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

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

<intent> 标签中能够配置:对象

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

只有 <data> 标签中指定的内容和 Intent 中携带的数据彻底一致,Activity 才能够响应。通常在 <data> 标签中不须要指定这么多的信息。blog

除了 http 协议之外,还有不少其余的协议,好比:geo 表示显示地理位置、tel 表示拨打电话。

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

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
复制代码

相关文章
相关标签/搜索