Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.MediaColumns._ID, MediaStore.MediaColumns.SIZE, MediaStore.Images.ImageColumns.DATE_MODIFIED};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
Bundle bundle = new Bundle();
// Sort function
bundle.putStringArray(
ContentResolver.QUERY_ARG_SORT_COLUMNS,
new String[]{MediaStore.Images.ImageColumns.DATE_MODIFIED}
);
bundle.putInt(
ContentResolver.QUERY_ARG_SORT_DIRECTION,
ContentResolver.QUERY_SORT_DIRECTION_DESCENDING
);
bundle.putInt(ContentResolver.QUERY_ARG_LIMIT, limit);
bundle.putInt(ContentResolver.QUERY_ARG_OFFSET, offset);
cursor = this.getContentResolver().query(uri, projection, bundle, null);
} else {
cursor = this.getContentResolver().query(uri, projection,
null, null
, MediaStore.MediaColumns.DATE_MODIFIED + " DESC " + " LIMIT " + limit + " OFFSET " + offset, null);
}
我正在使用此查询来获取受限制和偏移限制的图像。尽管无论如何,这总是返回 4546 的游标计数。这意味着数据完全不受限制并且查询无法正常工作。
更新:您需要在将 uri 传递给游标之前添加它。
Uri queryUri =
uri.buildUpon().encodedQuery("limit="+offset+","+limit).build();
// now pass uri
cursor = this.getContentResolver().query(queryUri, projection, bundle, null);