Android开发之查找本机的图片、视频、音乐、其他类别文件
来源:互联网 发布:淘宝账户怎么看等级 编辑:程序博客网 时间:2024/04/29 06:04
ContentProvider是Android的四大组件之一,可见它在Android中的作用非同小可。它主要的作用是:实现各个应用程序之间的(跨应用)数据共享,比如联系人应用中就使用了ContentProvider,你在自己的应用中可以读取和修改联系人的数据,不过需要获得相应的权限。其实它也只是一个中间人,真正的数据源是文件或者SQLite等。
Android系统提供的MediaStore功能就是文件类型的ContentProvider,MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。
先来了解一下ContentResolver的查询接口:
Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);
Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。
Projection: 指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。
selection: 指定查询条件
selectionArgs:参数selection里有 ?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。
SortOrder:指定查询结果的排列顺序
1.获取image照片
Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;// 获得图片Cursor mCursor = contentResolver.query(mImageUri, null,MediaStore.Images.Media.MIME_TYPE + "=? or "+ MediaStore.Images.Media.MIME_TYPE + "=?",<span style="white-space:pre"></span>new String[] { "image/jpeg", "image/png" },MediaStore.Images.Media.DATE_MODIFIED);2.获取music音乐
Uri mMusicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;// 要查询的列String[] mediaColumns = new String[] { MediaStore.Audio.Media.DATA,MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.MIME_TYPE, MediaStore.Audio.Media.SIZE};// 获取音频Cursor cursor = contentResolver.query(mMusicUri, mediaColumns, null,null, MediaStore.Audio.Media.DATE_MODIFIED);3.获取video视频
Uri mVedioUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;String[] thumbColumns = new String[] {MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Thumbnails.VIDEO_ID };// 要查询的列String[] mediaColumns = new String[] { MediaStore.Video.Media.DATA,MediaStore.Video.Media._ID, MediaStore.Video.Media.TITLE,MediaStore.Video.Media.MIME_TYPE, MediaStore.Video.Media.SIZE};// 获取视频Cursor cursor = contentResolver.query(mVedioUri, mediaColumns, null,null, MediaStore.Video.Media.DATE_MODIFIED);4.获取非媒体文件,如PDF,Word,zip等
Uri mDocumentUri = MediaStore.Files.getContentUri("external");// 要查询的列String[] mediaColumns = new String[] {MediaStore.Files.FileColumns.DATA,MediaStore.Files.FileColumns.TITLE,MediaStore.Files.FileColumns.MIME_TYPE,MediaStore.Files.FileColumns.SIZE };String selection = MediaStore.Files.FileColumns.MIME_TYPE + "=? or "+ MediaStore.Files.FileColumns.MIME_TYPE + "=?";MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();String mimeTypeZip = mimeTypeMap.getMimeTypeFromExtension("zip");String mimeTypeRAR = mimeTypeMap.getMimeTypeFromExtension("pdf");String[] selectionArgs = new String[] { mimeTypeZip, mimeTypeRAR};// 获取文档Cursor cursor = contentResolver.query(mDocumentUri, mediaColumns,selection, selectionArgs, null);
1 0
- Android开发之查找本机的图片、视频、音乐、其他类别文件
- Android获取本机各种类型文件列表(音乐、视频、图片、文档等)
- Android读取音乐视频图片文件
- Android应用源码可以按音乐视频图片分类浏览的安卓文件浏览器
- Android应用源码可以按音乐视频图片分类浏览的安卓文件浏览器
- MVP开发的视频音乐图片小项目
- Android源码开发之预制视频音乐等资源
- Android开发之基础---------多媒体音乐和视频播放
- Android 读取手机音乐,视频,图片
- android开发之播放音乐的方法
- android开发之播放音乐的方法
- android开发 音乐,文件下载
- 音乐图片视频查询
- 微信公众号开发之图片,音乐等文件出现该公众号无法提供服务的问题
- Android学习之视频音乐列表ListView
- 扫描指定文件夹下的文件,可以扫描音乐、图片和视频等
- android 获取本机其他app的版本信息
- SAE上传普通文件、图片、视频、音乐(持续更新)
- datepicker 参数(时间段是否能点)
- Anagrams by Stack-栈的递归调用
- MySQL中的视图及性能问题
- hdu1872稳定排序【超级水】
- 经典算法学习——快速排序
- Android开发之查找本机的图片、视频、音乐、其他类别文件
- c#之this显示调用构造函数
- 给自定义ViewGroup描边
- Sublime Text 自定义快捷键、字体、插件
- ZwOpenFile [WDK翻译]
- 预编译
- @synthesize和@dynamic的区别和应用环境
- intent传递对象,实现parceable或者serializable,及回传值
- afnetworking网络请求,ios中的网络请求示例代码