2012-08-10 6 views
3

내 응용 프로그램 이동 .JPG 파일을 JPG 파일을 이동하고 난 sendBroadcast ACTION_MEDIA_MOUNTED이내가 다른 폴더에

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + 
      Environment.getExternalStorageDirectory()))); 

그러나 이것은 많은 시간을 가지고 주식 갤러리에서 볼 얻을 후 안드로이드 미디어 스토어 MediaStore를 업데이트하는 방법 .. 난이 (어쩌면) 나는 이것을 빨리 얻기 위해 mediaStore에서 cursor/contentResolver로 수동으로 업데이트해야한다는 것을 이해해야한다. 아무도 이것에 나를 도울 수 있습니까? 덕분에 .. 내 코드는 실제로이와

Uri uri = (Uri) list.get(cont); 
Cursor cursor = managedQuery(uri, proj, null, null, null); 
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
cursor.moveToFirst(); 
String app = cursor.getString(column_index); 
File orig = new File(app.toString()); 
File dest = new File(destination_path +"/"+ orig.getName().toString()); 
orig.renameTo(dest); 

내가 또 하나의 경로에서 파일을 이동합니다. 난 그냥를 업데이트하려면 다음과 같은 사용을해야했다

MediaScannerConnection.scanFile(this, 
      new String[] { file.toString() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
     public void onScanCompleted(String path, Uri uri) { 
      // code to execute when scanning is complete 
     } 
}); 

답변

0

OS를 업데이트 할 MediaScannerConnection를 사용 sendBroadcast ACTION_MEDIA_MOUNTED에 내가 가지고있는 갤러리 의 이미지를 얻을 수 있습니다 MediaStore :

ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, newPath); 
boolean successMediaStore = context.getContentResolver().update(
    MediaStore.<TYPE>.Media.EXTERNAL_CONTENT_URI, values, 
    MediaStore.MediaColumns.DATA + "='" + oldPath + "'", null) == 1; 

올바른 미디어 저장소와 <TYPE> 교체 (Images, Video, ...)

+2

파일은 새로 생성 된 파일입니까? 난 아직이 코드를 시도했지만 ... 갤러리에서 폴더 이름으로 오래된 경로 폴더가있는 새 사진 (올바르게) 및 회색 이미지가 있습니다 ... 오래된 jpg 파일이 mediastore에서 자동 삭제되지 않습니다 .... – kekko986

+0

네 "file"이 당신의 경우에 "dest"가 될 것입니다. AFIAK, 삭제 된 파일을 업데이트하는 유일한 안정적인 방법은 느린 미디어 탑재 방송을 사용하는 것입니다. – Krylez

3

:

이 후,

+0

즉각적인 결과가 필요한 경우 MediaScannerConnection 대신이 방법을 사용하십시오. –

관련 문제