首先感谢你的帮助。
我认为对于那些不陌生的内容提供商来说,这应该是一个相当微不足道的问题。不是我......: - )
我需要查询 MediaStore.Images.Media 以获取设备上的所有图片,包括内部存储和SD卡。
这是我想到的问题:
String[] proj = { MediaStore.Images.Media.DATA };
actualimagecursor =
managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,null, null, null);
重点是我要查询两者 EXTERNAL_CONTENT_URI和INTERNAL_CONTENT_URI。
是否可以使用单个查询执行它?
感谢您的帮助!
答案 0 :(得分:2)
无法使用单个查询检索这两个结果,因为查询是在特定位置(内部或外部)进行的。你需要实例化两个dirrefent Cursors
。
答案 1 :(得分:2)
很抱歉,这个版本太旧了,无法提供帮助,但您可以使用MergeCursor来合并这两个查询。
Cursor[] cursors = new Cursor[2];
cursors[0] = mActivity.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[]{
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.ORIENTATION,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media.MIME_TYPE ,
},
null,
null,
MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"
);
cursors[1] = mActivity.getContentResolver().query(
MediaStore.Images.Media.INTERNAL_CONTENT_URI,
new String[]{
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.ORIENTATION,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media.MIME_TYPE
},
null,
null,
MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"
);
Cursor cursor = new MergeCursor(cursors);