【发布时间】:2016-01-11 18:09:39
【问题描述】:
我正在尝试使用 getContentResolver().query(...) 从内部或外部存储中列出所有图像文件,这是可行的。 奇怪的是,有时该方法返回一个空游标,这怎么会发生? 我也尝试了这里建议的另一个 to list out all images from internal or external storage 但结果是一样的,有时返回的光标是空的。 任何想法?这是我的代码:
protected Exception doInBackground(Object... params) {
try {
Cursor cursor = getImageCursor();
cursor.moveToFirst();
mImageSources.clear();
for (int i = cursor.getCount()-1; i > 0; i--) {
cursor.moveToPosition(i);
mImageSources.add(
new CameraRollItem(
Uri.parse(cursor.getString(1)),
cursor.getString(1),
cursor.getString(3),
i
));
}
cursor.close();
} catch (Exception e) {
e.printStackTrace();
return e;
}
return null;
}
private Cursor getImageCursor() {
Cursor cursor = null;
// It have to be matched with the directory in SDCard
cursor = mContext
.getContentResolver()
.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
// if cursor is null, then try to read image from internal memory
if (cursor == null)
cursor = mContext
.getContentResolver()
.query(MediaStore.Images.Media.INTERNAL_CONTENT_URI, null, null, null, null);
return cursor;
}
【问题讨论】:
标签: android