Этот вопрос не ответил, поскольку они не рекомендовали тип Contacts.People
, и все ответы, которые я мог найти, по-прежнему связаны с его использованием. Как это можно сделать без использования People.NAME
и People.NUMBER
?Какой неисчерпаемый способ вызвать список контактов Android?
Другими словами, я уже знаю, что вы можете начать список контактов с:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
... и тогда вы должны создать метод, называемый onActivityResult, который должен выглядеть следующим образом:
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (1):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = this.getContentResolver()
.query(contactData,
null,
null,
null,
null);
if (c.moveToFirst()) {
int contact_id = c.getInt(c
.getColumnIndexOrThrow(ContactsContract.?????????));
}
}
break;
}
}
... так что, какие наименее названные имена столбцов я должен ожидать, чтобы найти в Cursor c
? Я не могу найти обновленную документацию по этому вопросу, и Google возвращает примеры с устаревшими столбцами People.NAME
и People.NUMBER
.
ContactsContract
класса византийское болото ... вещи, в которых я не могу найти что-нибудь, что выглядит она не имеет ничего общего с People.NAME
или People.NUMBER
, поэтому ответы, которые говорят «просто читать документацию для ContactsContract
» абсолютно бесполезны.
Возможно, есть немного смысла в редактировании этого, после того, как он уже был отмечен как [дубликат], так как никто никогда его не прочитает.
Худший из всех, так как я не могу комментировать, я не могу просить разъяснений по другим версиям этого вопроса. Я должен задать новый вопрос.
Вы видели ссылку [здесь] (http://developer.android.com/reference/android/provider/ContactsContract.Data.html)? Я думаю, это может быть полезно. – Danny
Помимо этого, не стесняйтесь подробно объяснять, что означает «вызвать список контактов Android». – CommonsWare
«invoke Android Contact Contact» означает, что телефон представляет пользователю список контактов, а затем, когда пользователь выбирает контакт из списка, эти данные возвращаются к методу onActivityResult моей активности. Я не могу понять, как извлечь данные из объекта Intent, переданного этому методу, потому что я понятия не имею, какие столбцы ожидать в Cursor, которые в конечном итоге могут быть извлечены из объекта Intent, переданного onActivityResult. – user3005829