我正在开发相机应用程序。我想列出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" 中的文件。我想显示该目录中的文件以进行编辑。任何人都可以建议另一种方法或解决这个问题提前谢谢。
答案 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的子文件夹来解决此问题,因此媒体扫描程序和其他应用程序在读取权限方面没有任何问题: