在试图找出我遇到的问题时,我需要一点帮助。我有一个应用程序可以查询手机上的所有图像并将它们显示在 GridView 中。我能够做到这一点并填充列表。问题是当我访问列表并从查询中的项目中获取信息时。光标告诉我该项目的文件路径为
/mnt/sdcard/images/media/file.jpg
但路径只有
/sdcard/images/media/file.jpg
这是我用来填充列表的代码。
// Set up an array of the Thumbnail Image ID column we want
String[] projection = {MediaStore.Images.Thumbnails._ID};
// Create the cursor pointing to the SDCard
//returns the cursor that checks the sdcard for Thumbnail id's
cursor = managedQuery(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection,
// Which columns to return
null,
// Return all rows
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
// Get the column index of the Thumbnails Image ID
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
这些项目确实显示,但是当我从另一个光标检索它们时路径是错误的。???我有点失落。
我已经在模拟器和我的物理设备上使用过它。同样的问题。我收到一条错误消息,指出路径为 NULL 并且程序崩溃了。
有没有办法让 MediaStore 查询 EXTERNAL_CONTENT_URI 并提供我需要的正确路径?另外,当我在我的物理手机上使用它时,查询何时停止到我的 sdcard 上的第一个带有图像的目录,以及它查询更多目录的方式?