Можно ли рекурсивно сканировать папки с помощью MediaScanner
У меня есть основной вопрос по MediaScanner. Пожалуйста, помогите мне лучше понять это.
MediaScanner для папки возвращает только информацию о папке, которая сканируется, но не содержимое папки для любых медиа-файлов, присутствующих в ней. Если папка сканируется на ex. /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));
}
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())));