2013-08-16 51 views
0

我对MediaScanner有一个基本问题,请帮助我更好地理解此问题。是否可以使用MediaScanner递归扫描文件夹

文件夹的MediaScanner仅返回有关扫描的文件夹的信息,但不包含存在于其中的任何媒体文件的文件夹内容的信息。如果文件夹被扫描为前。 /storage/extSdCard/DCIM/Camera其中有几个.jpg文件,我得到有关该文件夹的扫描响应,而不是其中的about文件。日志下面,

D/MediaScannerConnection(29105): Connected to MediaScanner 
D/MediaScannerConnection(29105): Scanning file 7klwibgf7fxlKdCbid7DCRV7Cbvfib 

D/MyLog(29105): onScanCompleted(path,uri), path: /storage/extSdCard/DCIM/Camera, Uri: content://media/external/file/4334 

我的问题, 是否有可能获得事件回来时,曾经的媒体文件添加到我在这种情况下,利率的文件夹,/storage/extSdCard/DCIM/Camera

public void MyScanner(String filename){ 
     File fileCheck = new File(filename); 
     conn = new MediaScannerConnection(this,this); 
     conn.connect(); 
} 

@Override 
    public void onMediaScannerConnected() { 
     Log.d(TAG,"onMediaScannerConnected() to MediaScanner Service"); 
     conn.scanFile(filename, null); 
    } 

@Override 
    public void onScanCompleted(String path, Uri uri) { 
     if(path!=null && uri!=null) 
     Log.d(TAG,"onScanCompleted(), path: "+path+", Uri: "+uri.toString()); 
     Log.d(TAG,"Converting file uri to FilePath: "+getRealPathFromURI(uri)); 
     } 

回答

0
First One Code.... 

scanPhoto(imageFileName.toString()); 



public void scanPhoto(final String imageFileName) 
{ 
    msConn = new MediaScannerConnection(PreviewDemo1.this,new MediaScannerConnectionClient() 
    { 
       public void onMediaScannerConnected() 
       { 
        msConn.scanFile(imageFileName, null); 
        Log.i("msClient obj in Photo Utility","connection established"); 
       } 
       public void onScanCompleted(String path, Uri uri) 
       { 
        msConn.disconnect(); 
        Log.i("msClient obj in Photo Utility","scan completed"); 
       } 
    }); 
    msConn.connect(); 
} 

第二个代码..

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

嗨阿米特,你的上面的代码是否扫描文件夹中的图像文件?我有一个要求,我需要扫描我的兴趣递归地为其中的图像文件的“文件夹”。 – Manju

+0

没有不递归的工作。请尝试第二个我编辑 –