Android媒体库使用分组查询

Android媒体库使用分组查询

在Android中使用ContentResolver查询媒体库时是没有Group by参数的,但是可以追加在where参数中。

例如查询按文件夹查询图片,并且查询每个文件夹下面的图片数量

final String selection = "1=1) group by ([bucket_id]"; 
final String[] projection = new String[]{ 
    "count([_id])", 
    "bucket_display_name"}; 
Cursor c = getContentResolver().query( 
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
    projection, 
    selection, null, null); 
while (c.moveToNext() ) { 
    Log.e("haha", c.getString(2) + ":"+c.getInt(0)); 
} 
c.close();

主要是注意系统会为where语句添加一对小括号,即where ( … ) , 跟上面的”)(“拼接成两对小括号 ,最后拼接成的Sql语句为:

SELECT count([_id]), bucket_id, bucket_display_name FROM images WHERE (1=1) group by ([bucket_id])

你可能感兴趣的:(Android,媒体库分组查询)