在上一篇文章《Android实现录像功能》中,实现了调用第三方应用实现录像功能。
接下来要实现选择本地视频以添加到笔记中。
一、目标
选择本地视频以添加到神马笔记中。
二、实现方案
Android提供了3个Action,可以实现选择视频功能。
Action | 说明 |
---|---|
ACTION_PICK | 根据类型让用户选择第三方应用。 |
ACTION_OPEN_DOCUMENT | 直接显示Document的选择界面,Android 4.4以上使用。 |
ACTION_GET_CONTENT | 与ACTION_OPEN_DOCUMENT相同,Android 4.3及以下使用。 |
三、一些测试
1. 同时选择图片和视频
虽然使用ACTION_OPEN_DOCUMENT可以实现同时选择图片和视频,但无法区分用户最终的选择结果是图片还是视频。
Action | 说明 |
---|---|
ACTION_PICK | 无法实现 |
ACTION_OPEN_DOCUMENT | 通过设置EXTRA_MIME_TYPES 可以实现。红米6Pro测试结果是不支持视频,出现不了视频的分类,只能以文件方式选择。 |
ACTION_GET_CONTENT | 与ACTION_OPEN_DOCUMENT相同。 |
2. 选择音频
Action | 说明 |
---|---|
ACTION_PICK | 依赖于安装的应用。 坚果手机2上没有安装支持的应用,直接失败。 |
ACTION_OPEN_DOCUMENT | OK的。 |
ACTION_GET_CONTENT | 与ACTION_OPEN_DOCUMENT相同。 |
四、最终实现
同时使用3种Action,优先级分别为
- ACTION_PICK——可以选择自己常用的第三方应用
- ACTION_OPEN_DOCUMENT——使用系统的Document选择应用,需要适应一下
- ACTION_GET_CONTENT——与ACTION_OPEN_DOCUMENT一致,防御手段,提高适配
并且根据不同的Action对Intent进行不同的参数配置。
public static final boolean pick(Activity context, Fragment