查找具有给定显示名称的联系人
学习 Android 我正在尝试使用 DISPLAY_NAME 选择器查找联系人。我需要找到具有给定名称的所有联系人。使用标准查询一切都很顺利,但当我使用 ContentProviderOperation 时一切都会下降。我不明白一些功能。调试时我看到异常:空值。但是,我必须在那里插入哪些值?谢谢。
op.add(ContentProviderOperation.newAssertQuery(ContactsContract.Contacts.CONTENT_URI)
.withSelection(ContactsContract.Contacts.DISPLAY_NAME + " = '" + name + "'", new String[] {ContactsContract.Contacts._ID})
.build());
try {
result = getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
} catch (Exception e) {
}
Learning Android I'm trying to find contacts using DISPLAY_NAME selector. I need to find all contacts with given name. Everything goes great using standard query, but falls when I use ContentProviderOperation. I do not understand some of features. When debugging i see exception: Empty values. But, which values I must insert there? Thanks.
op.add(ContentProviderOperation.newAssertQuery(ContactsContract.Contacts.CONTENT_URI)
.withSelection(ContactsContract.Contacts.DISPLAY_NAME + " = '" + name + "'", new String[] {ContactsContract.Contacts._ID})
.build());
try {
result = getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
} catch (Exception e) {
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题出在你的第二行代码上,它应该是:
解释一下, withSelection 方法需要两个参数,选择字符串和数组 SelectionArgs,它们在查询编译期间被替换到选择字符串中。因此,在此示例中,
?
替换为name
的值。文本限定符(单引号)会同时自动嵌入,因此不需要额外的工作the problem is with your second line of code which should read:
To explain, the withSelection method takes two parameters, the selection string and an array selectionArgs, these are substituted into the selection string during query compilation. So in this example the
?
is subtituted for the value ofname
. Text qualifiers (single quotes) are automatically embedded at the same time so no additional effort is required