0

在试图找出我遇到的问题时,我需要一点帮助。我有一个应用程序可以查询手机上的所有图像并将它们显示在 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 上的第一个带有图像的目录,以及它查询更多目录的方式?

4

1 回答 1

3

你试过了MediaStore.Images.Media.EXTERNAL_CONTENT_URI吗?

managedQuery()已弃用,请使用getContentResolver().query().

于 2012-09-18T14:35:09.767 回答