如何将拍摄的照片添加到MediaStore

我想将拍摄的照片添加到MediaStore,以便Gallery应用程序可以找到它们(无需重新启动设备)。 应用程序的最小sdk是9.任何帮助,博客或文档赞赏。如何将拍摄的照片添加到MediaStore

回答:

在大多数设备上,您只需稍等片刻即可自动检测新照片。

如果你想瓶坯立即刷新到图库,您需要使用MediaScanner类,这将刷新画廊 - 删除删除的照片,添加新的等等...

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);

}

希望这有助于!

回答:

确定了我的代码,它为我工作它给,我可以在Android图库查看所有图片刚刚从该行

getallimages(Environment.getExternalStorageDirectory()); 

调用这个函数和我的函数低于

private void getallimages(File dir) 

{

String[] STAR = { "*" };

final String orderBy = MediaStore.Images.Media.DEFAULT_SORT_ORDER;

Cursor imagecursor = cntx.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, STAR, null, null, orderBy);

int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);

int count = imagecursor.getCount();

for (int i = 0; i < count; i++) {

imagecursor.moveToPosition(i);

int id = imagecursor.getInt(image_column_index);

ImageItem imageItem = new ImageItem();

if(new File(imagecursor.getString(imagecursor.getColumnIndex(MediaStore.Images.Media.DATA))).length()<=10485760)

{

imageItem.filePath = imagecursor.getString(imagecursor.getColumnIndex(MediaStore.Images.Media.DATA));

imageItem.id = id;

imageItem.selection = false; //newly added item will be selected by default

controller.images.add(imageItem);

}

}

}

回答:

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

在'保存'代码后插入这行代码。

这将触发媒体扫描,并且所有文件夹中的所有媒体文件('.nomedia'文件除外)将更新&可在图库中看到。

Source。

MediaScanner Documentation。

OR

// Tell the media scanner about the new file so that it is 

// immediately available to the user.

MediaScannerConnection.scanFile(this,

new String[] { file.toString() }, null,

new MediaScannerConnection.OnScanCompletedListener() {

public void onScanCompleted(String path, Uri uri) {

Log.i("ExternalStorage", "Scanned " + path + ":");

Log.i("ExternalStorage", "-> uri=" + uri);

}

});

Google's Sample Code。

回答:

您可以要求MediaScanner扫描特定文件,即按需扫描您的图像文件。这应该比仅让MediaScanner扫描所有文件以获得更少的开销。

SO: how to run media scanner in android

以上是 如何将拍摄的照片添加到MediaStore 的全部内容, 来源链接: utcz.com/qa/259117.html

回到顶部