图像显示名称在com.android.provider.media/external.db的外部数据库中更改
我在我的应用程序中使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI(EXTERNAL DB::data/data/com.android.provider.Media/EXTERNAL.DB))以我自己的_display_名称保存图像,例如:image_101.jpg,但过了一段时间后,显示名称变为长号,如1327392947034.jpg。下次当我用我的_display_name(image_101.jpg)获取图像时,它在外部数据库中找不到任何东西。谁能告诉我为什么会这样图像显示名称在com.android.provider.media/external.db的外部数据库中更改,android,Android,我在我的应用程序中使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI(EXTERNAL DB::data/data/com.android.provider.Media/EXTERNAL.DB))以我自己的_display_名称保存图像,例如:image_101.jpg,但过了一段时间后,显示名称变为长号,如1327392947034.jpg。下次当我用我的_display_name(image_101.jpg)获取图像时,它在外部数据库中找不到任何东西
谢谢我相信当
MediaScanner
将文件添加到内部MediaStore时会发生这种情况。
我认为这些数字与System.currentTimeMillis()有关代码>(盐渍哈希或类似)。我认为这是为了减少可能的文件名冲突(两个同名图像)
但是,应该有一种方法将显示名与文件名分开。当你说“my _display_name”时,你指的是你“添加”的MediaStore中的一列(例如“data2”)?或者您正在使用DISPLAY\u NAME
(android.provider.MediaStore.MediaColumns
)列?您还可以在DESCRIPTION
列中输入自定义名称
一种解决方法是在媒体存储中保留自己的显示名称数据库,其中包含一列ID
还有,你是如何插入图像的?您使用的是SQL查询还是以下查询之一:
insertImage(ContentResolver cr、String imgPath、String name、String desc)
方法来自MediaStore.Images.Media
多编写一点代码会有帮助,但也许这个答案中的一些答案会有所帮助