Android调用MediaScanner开展扫描

Android 调用 MediaScanner进行 扫描
代码如下;
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;
    /**
     * 然后<strong>调用</strong>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();
		}

	}
	
    /**
     * <strong>扫描</strong>文件标签信息
     * @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;
        //连接之后<strong>调用</strong>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;
	}

	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值