Android手动刷新媒体库的方法 - ImVeryGood/Loan GitHub Wiki

1、扫描sd卡整个目录,效率比较低

 public void allScan() {
       sendBroadcast(new Intent(
        Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath())));
}

2、扫描某一个目录

  public static final String ACTION_MEDIA_SCANNER_SCAN_DIR = "android.intent.action.MEDIA_SCANNER_SCAN_DIR";

     public void scanDirAsync(Context ctx, String dir) {
         Intent scanIntent = new Intent(ACTION_MEDIA_SCANNER_SCAN_DIR);
         scanIntent.setData(Uri.fromFile(new File(dir)));
          ctx.sendBroadcast(scanIntent);
  }

3、扫描某个文件,效率最快

  public static void scanFileAsync(Context ctx, String filePath) {
           Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
           scanIntent.setData(Uri.fromFile(new File(filePath)));
           ctx.sendBroadcast(scanIntent);
  }