android 应用组件[通用 Intent---检索特定类型的文件] 十一
来源:互联网 发布:c语言strncmp函数 编辑:程序博客网 时间:2024/05/16 09:32
如需请求用户选择文档或照片等文件并向您的应用返回文件引用,请使用 ACTION_GET_CONTENT
操作并指定所需 MIME 类型。 向您的应用返回的文件引用对 Activity 的当前生命周期而言是瞬态引用,因此如果您想稍后进行访问,就必须导入可在稍后读取的副本。用户还可利用此 Intent 在进程中创建新文件(例如,用户可以不选择现有照片,而是用相机拍摄新照片)。
传送至您的 onActivityResult()
方法的结果 Intent 包括的数据具有指向该文件的 URI。该 URI 可以是任何类型,如 http:
URI、file:
URI 或 content:
URI。 不过,如果您想将可选择的文件限定为可从内容提供程序 (content:
URI) 访问的文件,以及通过 openFileDescriptor()
以文件流形式提供的文件,则您应该为 Intent 添加 CATEGORY_OPENABLE
类别。
在 Android 4.3(API 级别 18)及更高版本上,您还可以通过为 Intent 添加 EXTRA_ALLOW_MULTIPLE
并将其设置为 true
,允许用户选择多个文件。然后您就可以在 getClipData()
返回的 ClipData
对象中访问每一个选定的文件。
- 操作
ACTION_GET_CONTENT
- 数据 URI 架构
- 无
- MIME 类型
- 与用户应选择的文件类型对应的 MIME 类型。
- Extra
EXTRA_ALLOW_MULTIPLE
- 一个布尔型值,声明用户是否可以一次选择多个文件。
EXTRA_LOCAL_ONLY
- 一个布尔型值,声明是否返回的文件必须直接存在于设备上,而不是需要从远程服务下载。
- 类别(可选)
CATEGORY_OPENABLE
- 只返回可通过
openFileDescriptor()
以文件流形式表示的“可打开”文件。
用于获取照片的示例 Intent:
static final int REQUEST_IMAGE_GET = 1;public void selectImage() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, REQUEST_IMAGE_GET); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_GET && resultCode == RESULT_OK) { Bitmap thumbnail = data.getParcelable("data"); Uri fullPhotoUri = data.getData(); // Do work with photo saved at fullPhotoUri ... }}
用于返回照片的示例 Intent 过滤器:
<activity ...> <intent-filter> <action android:name="android.intent.action.GET_CONTENT" /> <data android:type="image/*" /> <category android:name="android.intent.category.DEFAULT" /> <!-- The OPENABLE category declares that the returned file is accessible from a content provider that supports OpenableColumns and ContentResolver.openFileDescriptor() --> <category android:name="android.intent.category.OPENABLE" /> </intent-filter></activity>
0 0
- android 应用组件[通用 Intent---检索特定类型的文件] 十一
- android 应用组件[通用 Intent---打开特定类型的文件] 十二
- android 应用组件[通用 Intent---撰写带附件的短信/彩信] 二十一
- android 应用组件[通用 Intent---搜索] 十九
- 应用组件之一些通用的Intent
- android 应用组件[通用 Intent---联系人/人员应用] 九
- android 应用组件[通用 Intent---创建闹铃] 二
- android 应用组件[通用 Intent---创建定时器] 三
- android 应用组件[通用 Intent---显示所有闹铃] 四
- android 应用组件[通用 Intent---添加日历事件] 五
- android 应用组件[通用 Intent---叫车] 十三
- android 应用组件[通用 Intent---播放媒体文件] 十五
- android 应用组件[通用 Intent---创建笔记] 十七
- android 应用组件[通用 Intent---发起通话] 十八
- android 应用组件[通用 Intent---设置] 二十
- android 应用组件[通用 Intent---加载网址] 二十二
- android 应用组件[通用 Intent---撰写带有可选附件的电子邮件] 十
- android 应用组件[通用 Intent---显示地图上的位置] 十四
- RS485收发的3种典型电路-重点-自动收发电路
- 【bzoj2733】[HNOI2012]永无乡
- mysql 获取当前日期及格式化
- VT / Console / Xterm escape sequence
- Android-popupwindow详解
- android 应用组件[通用 Intent---检索特定类型的文件] 十一
- rabbitmq可靠发送的自动重试机制
- jQuery.post() 函数详解
- Xcode8 添加PCH文件
- 基于DragonBoard 410c的家庭环境质量检测仪
- git合并时忽略.DS_Store文件
- TCP: time wait bucket table overflow解决方法
- linux下解压tar.xz
- 修改网站中的关键词会影响网站的排名下降吗?