如何在AndroidKotlin中的联系人提供者查询中应用偏移量?

问题描述

我正试图从 Contacts Provider 中批量读取 汇总 联系人。我从文档中看到 ContactsContract 有一个LIMIT_PARAM_KEY,但这不适用于汇总联系人,并且我希望同时应用 偏移量 限制 到同一查询?

我已经尝试使用BundleContentResolver.QUERY_ARG_OFFSET的{​​{1}}和建议的here来构建查询,但这似乎不适用于 ContactsContract 。

谢谢!

解决方法

这里有两个单独的步骤:查询和阅读。

从提供者那里查询数据时,只需指定您感兴趣的selectionprojection。 然后,您会收到cursor,您可以用它来实际读取数据。

使用光标可以完全控制要读取的记录以及读取方式。

阅读:https://developer.android.com/reference/android/database/Cursor

这是示例代码,将从位置5开始读取10个联系人:

Cursor cur = getContentResolver().query(Contacts.CONTENT_URI,projection,selection,null,null);
if (cur.moveToPosition(4)) {
    for (int i = 0; i < 10 && cur.moveToNext(); i++) {
         long contactId = cur.getLong(0);
         Log.i("Hello","Contact " + i + ": " + contactId);
    }
}
  • 注意:如果操作成功,moveToPositionmoveToNext返回true。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...