Я не уверен на 100%, что должен делать ваш пример кода, но следующий фрагмент должен помочь вам «вызвать функцию списка контактов, выбрать контакт, а затем вернуться в [ваше] приложение с именем контакта».
Для этого процесса есть три шага.
1. Права доступа
Добавьте разрешение на чтение данных контактов в манифест приложения.
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2. Вызов сборщика контактов
Внутри вашей деятельности создайте намерение, которое просит систему найти действие, которое может выполнить действие 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()
для параметра data 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;
}
}
Полный исходный код: tutorials-android.blogspot.com (как вызвать список контактов Android) .