我们还应该使用MediaStore.Images.Media.insertImage()方法吗?

时间:2017-10-23 13:49:31

标签: android mediastore

我看到很多关于在Android中将图像保存到图库的讨论,我想知道MediaStore是否仍然是一种很好的处理方式?

谢谢,

2 个答案:

答案 0 :(得分:2)

我从未推荐过这种方法,原因很简单:你不知道那个图像在哪里结束。

相反,请将图片保存到某个已知的可控制位置,然后使用MediaScannerConnectionMediaStore了解该图片。如果您让用户控制位置,则奖励积分,您的应用只需为未单独配置的用户提供默认位置。

答案 1 :(得分:1)

使用MediaStore.Images.Media.insertImage(...),您最终会得到两个文件。以下是CommonsWare建议的方法:

// ...
// (save your image as usual to your custom location)
// ...

// notify mediascanner of the new image
MediaScannerConnection.scanFile(getApplicationContext(),
                            new String[] { yourFilePath }, null,
                            new MediaScannerConnection.OnScanCompletedListener() {
                                public void onScanCompleted(String path, Uri uri) {
                                    Log.i("ExternalStorage", "Scanned " + path + ":");
                                    Log.i("ExternalStorage", "-> uri=" + uri);
                                }
                            });