我有一个应用程序,允许用户从他们的相机拍摄保存到SD卡的图像,然后在其上运行媒体扫描仪,以便它们在图库中可见。用户还可以从库中添加图像。
在保存到SD卡之前,我对图像进行了一些压缩。因此,当用户从图库中选择图像时,如果它是由我的应用程序压缩和编写的图像,我想避免再次压缩它。我正在考虑检查图像路径以确定图像是否来自我的应用程序,但是使用URI,我得到像content://com.android.providers.media.documents/document/image%3A38691
这样的字符串,而uri.getPath()似乎没有路径。
我有什么选择来判断这张图片是否来自我的应用?以下是我能想到的事情:
1)Uri uri = Uri.fromFile(file)
:这似乎是值file:///storage/emulated/0/Pictures/MyApp/image.jpg
2)当我写入SD卡时存储数据的校验和,并在看到新图像时对此进行检查。
3)运行媒体扫描程序时以某种方式获取URI。还没弄明白怎么做。
更新:对于选项(3),看起来我可以使用MediaScannerConnectionClient
。这是最好的选择吗?将路径存储到数据库中的URI映射,并在每次用户从库中向我的应用添加新图像时引用它。