1) Права доступа
Добавить разрешение на чтение данных контактов на манифест приложения.
2) Вызов Contact Picker
В вашей деятельности, создать Intent, который просит систему, чтобы найти активность, которая может выполнять действия PICK из элементов в Контактах URI.
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
Вызов startActivityForResult, проходя в этом Намерении (и запроса кода целого числа, PICK_CONTACT в данном примере). Это приведет к тому, что Android запустит активность, зарегистрированную для поддержки ACTION_PICK в People.CONTENT_URI, а затем вернется к этому действию, когда выбор сделан (или отменен).
startActivityForResult(intent, PICK_CONTACT);
3) Прослушивание результата
Также в вашей деятельности, переопределить метод onActivityResult слушать возвращения из «выберите контакт» активность была запущена на шаге 2. Вы должны проверить что возвращаемый код запроса соответствует ожидаемому значению, а результат - RESULT_OK.
Вы можете получить URI выбранного контакта, вызвав getData() в параметре Intent данных. Чтобы получить имя выбранного контакта, вам нужно использовать этот URI для создания нового запроса и извлечения имени из возвращаемого курсора.
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// TODO Whatever you want to do with the selected contact name.
}
}
break;
}
}
Вы добавили свой класс в файл манифеста? – Stanojkovic
Я хочу вызвать мобильную активность контактов, а не обычную активность (активность контактов - это системная активность). Как вы можете найти класс активности контактов? – google