androidandroid-mediascanner

How to add taken photo to MediaStore


I want to add taken photos to MediaStore so Gallery app can find them (without restarting device). App's min sdk is 9. Any help, blog or documentation appreciated.


Solution

  • On most devices, all you need to do is wait a little while and the new photos will be detected automatically.

    If you want to preform an immediate refresh to the gallery, you need to use the MediaScanner class, It will refresh the gallery - remove deleted photos, add new ones and so on...

    public void refreshGallery() {
        Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        String newPhotoPath = "file:" + image.getAbsolutePath(); // image is the created file image
        File file = new File(newPhotoPath);
        Uri contentUri = Uri.fromFile(file);
        scanIntent.setData(contentUri);
        sendBroadcast(scanIntent);
    }
    

    Hope this helped!