[Android] 사진 저장 후 갤러리에 보이지 않는 경우-MediaScanner

Posted by Find my true self Fimtrus
2014.07.25 10:51 Programming/Android

개별 파일로 intent를 통해 리소스 디비 업데이트

이동~~(Click)



이번에는 폴더 전체 스캔, MediaScanner를 통해 업데이트를 해보겠습니다.


이부분도 간단하게 구현가능한데, 범용성을 위해 클래스로 뺐습니다^^;



package com.jhlibrary.util;

import android.content.Context;
import android.media.MediaScannerConnection;
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
import android.net.Uri;

public class MediaScanner {
	private Context mContext;

	private String mPath;

	private MediaScannerConnection mMediaScanner; 
	private MediaScannerConnectionClient mMediaScannerClient;

	public static MediaScanner newInstance(Context context) {
		return new MediaScanner(context);
	}

	private MediaScanner(Context context) {
		mContext = context;
	}

	public void mediaScanning(final String path) {

		if (mMediaScanner == null) {
			mMediaScannerClient = new MediaScannerConnectionClient() {

				@Override
				public void onMediaScannerConnected() {
					mMediaScanner.scanFile(mPath, null); // 디렉토리
					// 가져옴
				}

				@Override
				public void onScanCompleted(String path, Uri uri) {

				}
			};
			mMediaScanner = new MediaScannerConnection(mContext, mMediaScannerClient);
		}

		mPath = path;
		mMediaScanner.connect();
	}
}


직접 구현의 경우, MediaScannerConnection 클래스를 통해 디비에 접근(?), 


파일 또는 디렉토리 전체에 대한 업데이트를  할 수 있다.


먼저 MediaScannerConnectionClient 를 객체화 해줍니다.

(이 클래스는 MediaScannerConnection에서 callback을 받기 위한 클래스입니다).


그리고  connection을 위한 MediaScannerConnection을 객체화 하면 끝~!



사용하기 위해선 아래처럼 하시면 됩니다.



MediaScanner scanner = MediaScanner.newInstance(MainActivity.this);
scanner.mediaScanning("파일경로"); 
이 댓글을 비밀 댓글로
    • 1234
    • 2015.01.23 10:34
    MediaScanner scanner = MediaScanner.newInstance(MainActivity.this);
    scanner.mediaScanning("파일경로");
    여기서 MainActivity에서 오류가나는데 왜이런거죠?
      • 1234
      • 2015.01.23 10:38
      그리고 파일경로에는 /sdcard 이런식으로 적는건가요?
    • Environment 클래스에 보면 sd카드 등 파일패스 경로가 지정되어 있습니다.

      그걸 사용하셔서 해당 파일의 위치를 지정하시면 됩니다.
    • 스르르
    • 2015.11.27 00:06
    정말정말정말 감사합니다~~ 며칠동안 고민하던거 바로 해결했어요