2012-11-30 3 views
6

MediaScanner에서 하나의 디렉토리 만 검색하는 데 문제가 있습니다.MediaScanner를 하나의 디렉토리 (android)에서 호출

내 응용 프로그램은 사진을 찍어 sd-card/DCIM/AppPictures /에 저장하고 갤러리 응용 프로그램에 표시되도록 MediaScanner를 호출해야합니다. 다음 코드는 내 목적에 부합합니다.

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

하지만 너무 비싸 보입니다. 파일이 어디에 있는지 정확히 알 때 SDcard 전체를 스캔하려고하는 리소스를 사용하고 싶지 않습니다. 다음을 시도해 보았습니다.

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

그러나 결과가 나오지 않습니다. 누군가 제게이 일을 제대로 수행 할 수있는 방법을 알려주십시오.

답변

0

내 앱에서 사진을 다운로드 할 수도 있습니다.

내 주요 활동 (사진 다운로드)이 시작되면 중재자 연결을 시작합니다.

: 난 그냥 수행 스캔을 시작하려면

public class SomeActivity 
      extends Activity implements MediaScannerConnectionClient { 

    .... 

    protected MediaScannerConnection mMs; 

    .... 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     .... 
     mMs = new MediaScannerConnection(this, this); 
     .... 
    } 

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

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


} 

: 다운로드는 순차적, 내가 (currentFile 아래 이름) 및 문자열에 파일 이름을 저장 한 번 사진이 도착했습니다 미디어 스캐너를 "연결"

currentFile = "/mnt/sdcard/someLocationToScan/somefile.jpg"; 
mMs.connect(); 
1
public static void ScanMyFile(String strFilePath) { 
    // Tell the media scanner so it is available to the user. 
    MediaScannerConnection.scanFile(null, new String[] { strFilePath }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
       public void onScanCompleted(String path, Uri uri) { 
       } 
      }); 
}