Android How to use MediaScannerConnection scanFile

前端 未结 8 1770
醉梦人生
醉梦人生 2020-11-22 07:20

Im adding images to a folder on the SDCARD. Since the images and my folder is not immediately visible in the Gallery im trying to get the MediaScannerConnection to update an

8条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-22 07:37

    I realized that perhaps you were looking for a solution what would work previous to api level 8, and I could not make sense of Mitch's answer. I solved it by building a class for scanning a single file:

    import java.io.File;
    import android.content.Context;
    import android.media.MediaScannerConnection;
    import android.media.MediaScannerConnection.MediaScannerConnectionClient;
    import android.net.Uri;
    
    public class SingleMediaScanner implements MediaScannerConnectionClient {
    
        private MediaScannerConnection mMs;
        private File mFile;
    
        public SingleMediaScanner(Context context, File f) {
            mFile = f;
            mMs = new MediaScannerConnection(context, this);
            mMs.connect();
        }
    
        @Override
        public void onMediaScannerConnected() {
            mMs.scanFile(mFile.getAbsolutePath(), null);
        }
    
        @Override
        public void onScanCompleted(String path, Uri uri) {
            mMs.disconnect();
        }
    
    }
    

    and you would use it like this to make the MediaScannerConnection scan a single file:

    new SingleMediaScanner(this, file);
    

提交回复
热议问题