我有一个将jpg图像文件写入应用程序外部存储中的目录结构的应用程序。
我打算使用ContentResolver
扫描目录结构,以便搜索特定文件夹或所有文件夹。但是,我写的ContentResolver查询不会返回应用程序编写的任何文件(它确实会返回手机中的其他文件)。
这是代码:
// Create Content Resolver
ContentResolver resolver = getContentResolver();
// List of fields we want to include in the query
String[] projection = new String[] { BaseColumns._ID,
MediaStore.MediaColumns.DISPLAY_NAME,
MediaStore.MediaColumns.SIZE };
// Run the query and return a crusor
cursor = resolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
// URI = Uniform Resource Identifier
projection, // which fields
null , // selection criteria
null, // selection arguments
MediaStore.MediaColumns.SIZE + " DESC");
if ((cursor != null) && (cursor.moveToFirst()))
{
do // loop through the items in the list of results, using the cursor
{
long id = cursor.getLong(0);
String name = cursor.getString(1);
long size = cursor.getLong(cursor.getColumnIndex(MediaStore.MediaColumns.SIZE));
Log.i(TAG, "Image: id = " + id + " name = " + name
+ " size = " + size);
} while (cursor.moveToNext());
} else {
Log.w(TAG, "System media store is empty.");
}
我尝试重新启动手机(因此ContentProvider将会更新),我尝试了几种不同的设备和模拟器。什么都没有帮助。
我做错了什么?
虽然我们参与其中,您能否指导我如何按目录名称过滤结果(例如,仅显示特定子目录中的文件,或显示应用程序外部存储目录下的所有文件) )。
谢谢!
贝纳