LOOKUP_KEY и CONTENT_LOOKUP_URI - PullRequest
       21

LOOKUP_KEY и CONTENT_LOOKUP_URI

0 голосов
/ 25 марта 2012

У меня есть следующий код, чтобы получить детали контакта. «данные»: это Uri, который я получаю после выбора контакта.

Мне нужно быть уверенным, что я получу правильный контакт в будущем, так что я должен сохранить для будущего использования? Это "lookupUri" или "lookupKey"?

    Cursor c =  activity.managedQuery(data, null, null, null, null);
    c.moveToFirst();
    String lookupKey = c.getString(c.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY ));
    c.close();

    // Next use that key to access the details of the contact in order to get the name and the photo
    // Also, save it for future use.
    // It will be used when we fetch the details from the database since the photo itself is not saved.
     Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI,lookupKey);

    Uri uri = ContactsContract.Contacts.lookupContact(activity.getContentResolver(), deviceDetails.lookupUri);

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

LookupKey - это уникальный идентификатор, который вы хотите сохранить.

FYI;В 2.1 имеется ошибка, из-за которой несинхронизированные контакты LookupKey изменяются при изменении имени.

0 голосов
/ 07 ноября 2012

Это работает. Мой пример ищет имя; добавьте или удалите нужные поля в проекции.

private String getContactNameFromAndroidKey (String key)
{
  // Run query
  Uri uri = Uri.parse (ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + key);

  String[] projection = new String[] {
    Contacts._ID,
    Contacts.DISPLAY_NAME,
  };

  Cursor cursor = context.getContentResolver().query (
    uri,
    projection,
    null,
    null,
    null);

  if (!cursor.moveToNext()) // move to first (and only) row.
    throw new IllegalStateException ("contact no longer exists for key");
  String name = cursor.getString(1);
  cursor.close();

  return name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...