package com.ringtone.music;
import java.util.ArrayList;
import android.content.Context;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;
public class MediaScannerHelper {
private ArrayList<MediaScannerNotifier> mScanners;
public MediaScannerHelper() {
mScanners = new ArrayList<MediaScannerNotifier>();
}
private class MediaScannerNotifier implements MediaScannerConnectionClient {
private MediaScannerConnection mConnection;
private String mPath;
private String mMimeType;
public MediaScannerNotifier(Context context, String path, String mimeType) {
mPath = path;
mMimeType = mimeType;
mConnection = new MediaScannerConnection(context, this);
mConnection.connect();
}
public void onMediaScannerConnected() {
mConnection.scanFile(mPath, mMimeType);
}
public void onScanCompleted(String path, Uri uri) {
if (mPath == null)
return;
if (mPath.equals(path)) {
mConnection.disconnect();
synchronized(mScanners) {
mScanners.remove(this);
}
}
}
}
public void ScanMediaFile(Context context, String musicPath) {
synchronized(mScanners) {
mScanners.add(new MediaScannerNotifier(context, musicPath, "audio/mpeg"));
}
}
}