如何从Android中的各个目录中打开.jpeg文件?

时间:2016-02-23 06:19:05

标签: android android-cursor android-file

我正在开发相机应用程序。我想列出Camera目录,DCIM目录和我自己的应用程序目录中的所有文件,我使用网格视图来显示所有这些文件。我试过这段代码。

String[] selectionArgs = new String[] {"Camera","DCIM","100MEDIA",
            "MyDirectory"};

    Cursor mCursor = context.getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mProjection,
            selection, selectionArgs, MediaStore.Images.Media.DATE_TAKEN);

    mCursor.moveToLast();
    if (mCursor!= null) {

        while (mCursor.moveToPrevious()) {

            int columnIndex = mCursor
                    .getColumnIndexOrThrow(MediaStore.Images.Media._ID);
            String imageID = mCursor.getString(columnIndex);

            // Uri uri = Uri.withAppendedPath(
            // MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            // Integer.toString(imageID) );
            // String url = uri.toString();

            img_path.add(imageID);

        }
    }

    mCursor.close();
}

此代码工作正常,但不会列出由我创建的" Mydirectory" 中的文件。我想显示该目录中的文件以进行编辑。任何人都可以建议另一种方法或解决这个问题提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的应用要求提供媒体扫描程序找到的jpg文件(getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI...)

根据您使用的Android版本以及文件夹MyDirectory具有哪些文件权限,媒体扫描程序根本无法找到jpg文件或有一些延迟......

 > Can anyone suggest another method or solution to this problem?

如果您使用的是File.listFiles(),则此问题不应存在。

其他应用通过将自己的图像放入DCIM的子文件夹来解决此问题,因此媒体扫描程序和其他应用程序在读取权限方面没有任何问题:

  • /存储/ sdcard0 / DCIM /摄像机
  • /存储/ sdcard0 / DCIM / mydirectory中