Как получить контактный номер, используя проекцию через Uri с LOOKUP_KEY? - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь использовать следующий код для получения имени контакта и его номера телефона:

String id = readFile("contactlookupkey");
Uri uri = Uri.parse (ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + id);

  String[] projection = new String[] {
    Contacts._ID,
    Contacts.DISPLAY_NAME,
    ContactsContract.CommonDataKinds.Phone.NUMBER
  };

  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);
  String phone=cursor.getString(2);
  cursor.close();

Но я получаю исключение недопустимого аргумента при выполнении запроса из-за ContactsContract.CommonDataKinds.Phone.NUMBER.

Проблема в том, что я не вижу другого способа получить номер телефона, все еще используя URI + looupkey.

Что можно сделать, чтобы получить номер телефона?

1 Ответ

0 голосов
/ 29 июня 2018

Вы используете правильный URI?

Попробуйте переключиться:

ContactsContract.Contacts.CONTENT_LOOKUP_URI 

до

ContactsContract.CommonDataKinds.Phone.CONTENT_URI
...