如何在Android Contacts API中获取“查找密钥”?

时间:2012-03-04 12:11:12

标签: android android-contacts

以下内容来自Android文档

  

您可以从联系人本身获取查找密钥,它是一列   在ContactsContract.Contacts表上。

Uri lookupUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey)

Cursor c = getContentResolver().query(lookupUri, new String[]{Contacts.DISPLAY_NAME},        ...);
try {
c.moveToFirst();
String displayName = c.getString(0);
} finally {
c.close();
}

但无法让它发挥作用。

我在Stackoverflow herehere上访问了答案,但仍然是静脉。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

文档中的代码与如何使用 lookupKey 相关,而不是如何获取它。

就像他们说的那样,你可以从Contacts表中获取它。因此,为了获取联系人列表中每个联系人的 lookupKey ,您可以使用以下投影(提供的其余代码仅用于显示结果,您可以使用它作为您想):

String [] PROJECTION = new String [] {  ContactsContract.Contacts.LOOKUP_KEY };

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, PROJECTION, null, null, null);


for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) {
     Log.d(LOG_TAG, "lookupKey for contact:  " + cursor.getString(1) + ", is: " + cursor.getString(0));
}