4

我的应用程序将 .jpg 文件移动到其他文件夹并在图库中查看我有 sendBroadcast ACTION_MEDIA_MOUNTED

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

但这需要很多时间..我明白(也许)我必须直接在 mediaStore 中使用 cursor/contentResolver 手动更新才能更快地获得这个。谁可以帮我这个事?谢谢..我的代码实际上是:

 Uri uri = (Uri) list.get(cont); 
 Cursor cursor = managedQuery(uri, proj, null, null, null);
 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
 cursor.moveToFirst();
 String app = cursor.getString(column_index);
 File orig =  new File( app.toString());
 File dest = new File( destination_path +"/"+ orig.getName().toString());
 orig.renameTo(dest);

有了这个,我将一个文件从一个路径移动到另一个。

在此之后,要在图库中获取图像,我必须发送广播 ACTION_MEDIA_MOUNTED

4

2 回答 2

3

我只需要做同样的事情,使用以下更新MediaStore

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newPath);
boolean successMediaStore = context.getContentResolver().update(
    MediaStore.<TYPE>.Media.EXTERNAL_CONTENT_URI, values,
    MediaStore.MediaColumns.DATA + "='" + oldPath + "'", null) == 1;

替换<TYPE>为正确的媒体存储... ( Images, Video, Audio...)

于 2015-10-08T09:18:55.917 回答
0

使用 MediaScannerConnection 更新操作系统:

MediaScannerConnection.scanFile(this,
          new String[] { file.toString() }, null,
          new MediaScannerConnection.OnScanCompletedListener() {
      public void onScanCompleted(String path, Uri uri) {
          // code to execute when scanning is complete
      }
 });
于 2012-08-10T17:34:11.620 回答