Android通过第三方应用唤起App
通过隐式Intent的唤起应用程序
在很多应用中都会遇到一种情况就是点击某一个音频、视频或者图片,唤起其他应用或者通过发送的方式唤起其他应用打开对用的数据信息。这种方式很常见并且在Android官方文档中也有一定的描述 点击此处进入。但在实际使用中获取数据以及如果配置Intent过滤器都会有一些问题的存在。这篇文章主要介绍如果进行配置及使用。
音频文件通过“其他应用打开”或者“发送到其他”的方式唤起应用
如上图,我们以微信的“发送到其他”和“其他应用打开”为例来介绍如果设置Intent的过滤条件。该部分需要了解Intent的一些标签属性改这里不过多介绍。 点击此处参考地址
通过上述的隐式Intent打开应用的两种方式,需要通过为应用程序对应的Activity添加action标签。在action标签中存在name属性,在 name 属性中,声明接受的 Intent 操作。该值必须是操作的文本字符串值,而不是类常量。所以说如果我们要通过上述两种方式开启应用需要配置字符串。字符串如下:
- android.intent.action.VIEW 对应java常量ACTION_VIEW
- android.intent.action.SEND 对应java常量ACTION_SEND
- android.intent.action.SEND_MULTIPLE 对应java常量ACTION_SEND_MULTIPLE
具体描述: Intent.ACTION_VIEW、 Intent.ACTION_SEND、 Intent.ACTION_SEND_MULTIPLE
简单理解可以认为ACTION_VIEW是“其他应用打开“”的过滤条件之一;其他两个是“发送到其他”的过滤条件只是ACTION_SEND代表发送一条数据、另一个代表发送多条数据。
过滤数据类型
打开或者发送的时候都是需要携带一些数据进行操作。而具体什么样的数据才是我们需要的并且是有效的就需要另外的一些过滤标签进行限制了。例如我们需要获取的文件是一个音频文件就需要使用到android:mimeType属性该数据是在data标签中声明。如果是音频需要这样赋值:android.mimeType=audio/* 为什么是audio/*因为音频的格式有很多 *代表所有能够支持的音频格式。如果只需要支持接收MP3类型的音频也可以设置为:audio/mpeg
除此之外Intent还会指定一个URL结构.URI的每个部分都是一个单独的属性:scheme、host、port 和 path: