How to update the Android media database How to update the Android media database database database

How to update the Android media database


Android has a cache of sorts that keeps track of media files.

Try this:

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

It makes the MediaScanner service run again, which should remove the deleted song from the device's cache.

You also need to add this permission to your AndroidManifest.xml:

<intent-filter>  <action android:name="android.intent.action.MEDIA_MOUNTED" />  <data android:scheme="file" /> </intent-filter>


For Android before ICS, send a ACTION_MEDIA_MOUNTED broadcast :

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

For ICS and Jelly Bean, you can use the MediaScannerConnection API to scan media files


Gallery refresh including Android KITKAT

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){        Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);        File f = new File("file://"+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));        Uri contentUri = Uri.fromFile(f);        mediaScanIntent.setData(contentUri);        this.sendBroadcast(mediaScanIntent);}else{       sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));}