Android中如何将下载的多媒体文件保存到系统媒体库

Android媒体文件(图片 视频 音频 等文件)需要扫描到媒体库中才能通过相关的程序来查看. 比如 编写一个程序从互联网上下载一个图片保存到SDCard中,退出程序打开系统图片程序并看不到刚刚下载的图片. 这就是因为图片没有在系统媒体库注册的原因. 在系统启动的时候(或者SDCard从新载入的时候)系统会扫描媒体文件,并注册新发现的文件. 下面的示例就是如何通过代码来注册新的媒体文件.

import android.content.Context; import android.media.MediaScannerConnection; import android.net.Uri; public class MediaScanner { private MediaScannerConnection mediaScanConn = null; private MusicSannerClient client = null; private String filePath = null; private String fileType = null; private String[] filePaths = null; /** * 然后调用MediaScanner.scanFile("/sdcard/2.mp3"); * */ public MediaScanner(Context context) { //创建MusicSannerClient if (client == null) { client = new MusicSannerClient(); } if (mediaScanConn == null) { mediaScanConn = new MediaScannerConnection(context, client); } } class MusicSannerClient implements MediaScannerConnection.MediaScannerConnectionClient { public void onMediaScannerConnected() { if(filePath != null){ mediaScanConn.scanFile(filePath, fileType); } if(filePaths != null){ for(String file: filePaths){ mediaScanConn.scanFile(file, fileType); } } filePath = null; fileType = null; filePaths = null; } public void onScanCompleted(String path, Uri uri) { // TODO Auto-generated method stub mediaScanConn.disconnect(); } } /** * 扫描文件标签信息 * @param filePath 文件路径 eg:/sdcard/MediaPlayer/dahai.mp3 * @param fileType 文件类型 eg: audio/mp3 media /* application/ogg * */ public void scanFile(String filepath,String fileType) { this.filePath = filepath; this.fileType = fileType; //连接之后调用MusicSannerClient的onMediaScannerConnected()方法 mediaScanConn.connect(); } /** * @param filePaths 文件路径 * @param fileType 文件类型 * */ public void scanFile(String[] filePaths,String fileType){ this.filePaths = filePaths; this.fileType = fileType; mediaScanConn.connect(); } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public String getFileType() { return fileType; } public void setFileType(String fileType) { this.fileType = fileType; } }

原帖地址:http://bashenmail.javaeye.com/blog/603680

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值