我需要一些帮助才能找出我遇到的问题。我有一个应用程序将查询手机上的所有图像并在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);
项目DO ACTUALLY显示,但当我从另一个光标检索它们时路径错误。 ?????? 我有点失落。
我在模拟器和物理设备上使用过它。同样的问题。 我得到一个ERROR,声明路径为NULL并且程序崩溃。
有没有办法可以让MediaStore查询EXTERNAL_CONTENT_URI并提供我需要的正确路径? 另外,当我在我的物理电话上使用它时,查询到我的SD卡上第一个目录的图像然后停止了,以及查询更多目录的方式吗?
答案 0 :(得分:3)
你试过MediaStore.Images.Media.EXTERNAL_CONTENT_URI
吗?
也弃用managedQuery()
,请使用getContentResolver().query()
。