还用上次的例子
如果想按照文件夹名称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中有括号的情况