还用上次的例子
如果想按照文件夹名称group的话,代码如下
String[] projection = {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATA,
"(SELECT _data FROM thumbnails WHERE thumbnails.image_id =images._id) AS thumbnail",
};
String selection = "0==0) GROUP BY (bucket_display_name";
Uri uri = MediaStore.Images.Media.getContentUri("external");
Cursor c = MediaStore.Images.Media.query(this.getContentResolver(), uri, projection, selection, null,"_id");
while(c.moveToNext()) {
Log.i("zhangrl", ""+c.getLong(c.getColumnIndexOrThrow("_id"))
+ "|" + c.getString(c.getColumnIndexOrThrow("_data"))
+ "|" + c.getString(c.getColumnIndexOrThrow("thumbnail"))
);
}
只需用在Selection出加上
String selection = "0==0) GROUP BY (bucket_display_name";
Android会将query中的参数整合成一条sql语句,
其中会将selection的字符串自动加一对括号,
变成“WHERE (XXX)”的形式,
所以要特别注意selection中有括号的情况
本文介绍了一种在Android中使用ContentResolver查询MediaStore中图片,并按文件夹名称进行分组的方法。通过修改查询的selection参数实现,具体代码示例展示了如何构造SQL语句。
1332





