Как выбрать номер телефона с помощью диалога контактов в Android

Я использую старый API Contacts для выбора контакта с номером телефона. Я хочу использовать более новый API ContactsContracts. Я хочу...

  1. ... чтобы отображался диалог со всеми контактами, у которых есть номера телефонов.
  2. ... чтобы пользователь мог выбрать контакт И один из его телефонных номеров.
  3. ... доступ к выбранному номеру телефона.

КонтактыКонтакты очень сложны. Я нашел много примеров, но ни один не подходит для моих нужд. Я не хочу выбирать контакт, а затем запрашивать его данные, потому что это даст мне список его телефонных номеров. Мне нужно, чтобы пользователь выбрал ОДИН из телефонных номеров контакта. Я не хочу писать собственные диалоги для отображения контактов или для того, чтобы пользователь выбрал номер телефона. Есть ли простой способ получить то, что я хочу?

Вот старый код API, который я использую:

static public final int CONTACT = 0;
...
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.Phones.CONTENT_URI);
startActivityForResult(intent, CONTACT);
...
public void onActivityResult (int requestCode, int resultCode, Intent intent) {
  if (resultCode != Activity.RESULT_OK || requestCode != CONTACT) return;
  Cursor c = managedQuery(intent.getData(), null, null, null, null);
  if (c.moveToFirst()) {
     String phone = c.getString(c.getColumnIndexOrThrow(Contacts.Phones.NUMBER));
     // yay
  }
}      
23
задан Mat Nadrofsky 3 January 2012 в 15:08
поделиться