public void startScan(){
  if(conn!=null)
   conn.disconnect();
  if(save_file.isFile()){
   conn = new MediaScannerConnection(this, this);
   conn.connect();
   Toast.makeText(this, "startscan", Toast.LENGTH_SHORT).show();
   
  }else{
   Toast.makeText(this, "존재하지 않는 파일입니다.", Toast.LENGTH_SHORT).show();
  }
 }
 
 public void onMediaScannerConnected(){
  String temp;
  temp = save_file.toString();
  conn.scanFile(temp, null);
  Toast.makeText(this, "connected", Toast.LENGTH_SHORT).show();
 }
 
 public void onScanCompleted(String path, Uri uri){
  Toast.makeText(Edit.this, "Saved Success", Toast.LENGTH_LONG).show();
 
  try{
   if(uri==null){
    Toast.makeText(Edit.this, "Saved Success", Toast.LENGTH_LONG).show();
   }else{
    Log.e("MediaScannerDemo", "잘못된 파일입니다.");
    Toast.makeText(this, "잘못된 파일입니다.", Toast.LENGTH_SHORT).show();
   } 
  }finally{
   conn.disconnect();
   conn=null;
  }
 }


사진을 저장한 후에 갤러리에 바로 보일 수 있게 하도록 하기위해서,
책에 있는 예제를 이용해서 미디어 스캐닝을 작성했습니다.

호출이 되는지 확인해 보기 위해서 Toast를 출력했는데,
onMediaScannerConnected()까지는 제대로 Toast 메세지가 출력지만
public void onScanCompleted(String path, Uri uri)는 호출되지 않는 것 같습니다.
또, 갤러리를 봐도 바로바로 스캔이 되지 않구요,


처음엔
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
이렇게 미디어 스캐닝을 실행시켜서 했었는데, 이 방식은 많이 느린것같구요...
첫번째 방식이 미디어DB에 하나씩 추가해주는 방식 아닌가요?