[Android] Gallery Refresh after Kitkat (ver. 4.4)

안드로이드 킷캣 (4.4) 이후 갤러리 갱신 하는 방법이 변경되었다고 합니다.

이전에는 Media Mount 를 이용해서 전체적으로 갱신을 했었는데 배터리 소모가 심한 이슈가 있었다네요

이후에는 아래 코드를 사용하시면 됩니다.

원문 : http://stackoverflow.com/questions/4646913/android-how-to-use-mediascannerconnection-scanfile

import java.io.File;
import android.content.Context;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;

public class SingleMediaScanner implements MediaScannerConnectionClient {

private MediaScannerConnection mMs;
private File mFile;

public SingleMediaScanner(Context context, File f) {
    mFile = f;
    mMs = new MediaScannerConnection(context, this);
    mMs.connect();
}

@Override
public void onMediaScannerConnected() {
    mMs.scanFile(mFile.getAbsolutePath(), null);
}

@Override
public void onScanCompleted(String path, Uri uri) {
    mMs.disconnect();
}

}

간단하게는 이 함수만 써도 될 것 같네요~

private void scanFile(String path) {

        MediaScannerConnection.scanFile(MainActivity.this,
                new String[] { path }, null,
                new MediaScannerConnection.OnScanCompletedListener() {

                    public void onScanCompleted(String path, Uri uri) {
                        Log.i("TAG", "Finished scanning " + path);
                    }
                });
    }