【问题标题】:How to obtain 'lookup key" in Android Contacts API?如何在 Android 联系人 API 中获取“查找密钥”?
【发布时间】:2012-03-04 12:11:12
【问题描述】:

以下来自 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 上的答案,但很顺利。

我们将不胜感激。

【问题讨论】:

    标签: android android-contacts


    【解决方案1】:

    文档中的代码是关于lookupKey获取后如何使用,而不是如何获取。

    正如他们所说,您可以从“联系人”表中获取它。因此,为了获取联系人列表中每个联系人的 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));
    }
    

    【讨论】:

    • 我的回答有问题吗?总是很高兴学习新事物,但是当你投反对票时,请解释为什么?!因为我真的认为这是对他的问题的一个很好的回答,因为它确实为每个联系人提供了查找键(我已经编写了代码并对其进行了测试)。
    • 我不知道谁投了反对票,我还在努力理解你的回答,一旦我完成了我会发表评论。
    • 每个联系人都有一个lookupKey。我的答案中显示的代码可帮助您为每个人获得lookupKey。如果不清楚,请随时要求进一步解释。
    • Android 文档说 如果您需要阅读单个联系人,请考虑使用 CONTENT_LOOKUP_URI 而不是 CONTENT_URI。 [link]developer.android.com/reference/android/provider/… 但在您的回答中,我们实际上使用 CONTENT_URI 来获取显示名称。
    • 我认为查找键仅适用于一个联系人。 Android 文档“如果您需要阅读个人联系人,请考虑使用 CONTENT_LOOKUP_URI 而不是 CONTENT_URI。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    相关资源
    最近更新 更多