首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将照片添加到MediaStore中

如何将照片添加到MediaStore中
EN

Stack Overflow用户
提问于 2014-02-17 07:05:51
回答 4查看 3.8K关注 0票数 5

我想添加拍摄的照片到MediaStore,以便画廊应用程序可以找到他们(不重新启动设备)。应用程序的min是9。任何帮助,博客或文档感谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-17 07:17:15

在大多数设备上,您所需要做的就是等待一小段时间,新照片将被自动检测到。

如果您想要预先对图库进行刷新,您需要使用MediaScanner类,它将刷新图库-删除已删除的照片,添加新的照片等等……

代码语言:javascript
复制
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);
}

希望这能帮上忙!

票数 7
EN

Stack Overflow用户

发布于 2014-02-17 07:17:15

代码语言:javascript
复制
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

在“保存”代码之后插入这一行代码。

这将触发媒体扫描,所有文件夹中的所有媒体文件(“.nomedia”文件除外)都将被更新&在图片库中可见。

来源

MediaScanner文档

代码语言:javascript
复制
// 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的示例代码

票数 1
EN

Stack Overflow用户

发布于 2014-02-17 07:16:42

好的,这是我的代码,它为我工作,它给我所有的图片,我可以看到,在安卓画廊,只需调用这个函数从这一行

代码语言:javascript
复制
 getallimages(Environment.getExternalStorageDirectory());

我的职能如下

代码语言:javascript
复制
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);   

            }
 }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21822759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档