FileStorge相关的几个intent

来源:互联网 发布:mac系统基础教程视频 编辑:程序博客网 时间:2024/06/07 16:28

1,取回一个特定类型的file

如果想发请求请用户选择一个文件(例如文档或者图片),然后再把文件引用返回来,可以使用ACTION_GET_CONTENT。这个action一定要加type。

返回的文件引用是临时的,只在这个activity的当前生命周期有用。

这个intent也允许用户创建一个新的file返回,例如不是选择一个现有的图片,而是新拍一张图片。


用户选择的文件的Uri会返回到onActivityResult,这个Uri可以是任意类型例如http:,content:,file:

如果要限制为存在content provider并且可以用openFileDescriptor()打开,那就加上category: CATEGORY_OPENABLE。

在4.3及其以后的版本可以在extra中设置key:EXTRA_ALLOW_MULTIPLE为true这样就允许用户同时选择多个file。这些文件通过intent的getClipData()拿到。

另外还有一个extra key:EXTRA_LOCAL_ONLY,说明返回的文件是不是必须是本地文件,而不需从remote service获取。


2,打开某个类型的文件

4.4之后可以使用ACTION_OPEN_DOCUMENT加上MIME type来请求打开一个其他app管理下的文件。

使用ACTION_CREATE_DOCUMENT允许用户在其他app管理的存储区域创建一个文件,然后你的app向里面写入内容。

Uri同样会返回到onActivityResult,和上面的不同,这个Uri只能是content:的,和上面的相比你的app对这个返回的Uri有长期的读权限甚至写权限。

使用的时候必须写明MIME type和category: CATEGORY_OPENABLE,如果有多种MIME type可以设置一个数组给EXTRA_MIME_TYPE。


另外EXTRA里面多出一个EXTRA_TITLE,用于和ACTION_CREATE_DOCUMENT一起使用,声明创建的文件的名字。


以上说的只是客户端app发的请求,要想做到可以打开其他app的文件还需要其他app作特定的实现,这次先不讲,待续。









0 0
原创粉丝点击