Можно ли рекурсивно сканировать папки с помощью MediaScanner

У меня есть основной вопрос о MediaScanner, пожалуйста, помогите мне лучше понять это.

MediaScanner для папки возвращает только информацию о сканируемой папке, но не содержимое папки для каких-либо медиафайлов, находящихся в ней. Если папка сканируется на наличие напр. /storage/extSdCard/DCIM/Camera, в котором есть несколько файлов .jpg, я получаю ответ сканирования о папке, а не о файлах в ней. логи ниже,

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)); 
        }

person Manju    schedule 16.08.2013    source источник


Ответы (1)


  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())));
person Amit Prajapati    schedule 16.08.2013
comment
Привет, Амит, приведенный выше код сканирует папку на наличие в ней файлов изображений? У меня есть требование, когда мне нужно рекурсивно сканировать интересующие меня ПАПКИ для файлов изображений. - person Manju; 16.08.2013