Как я могу получить startActivityForResult (), чтобы вызвать только список телефонных контактов (например, когда я нажимаю на значок "Люди"), используя Android SDK? - PullRequest
0 голосов
/ 09 октября 2011

извините, если этот вопрос очевиден, но я новичок в Android SDK.

Я пытаюсь получить список контактов с реальными телефонными номерами для отправки смс-сообщения. Я развертываю прямо на своем телефоне и пытаюсь использовать только те контакты, которые указаны на моем телефоне, но я получаю слишком много странных контактов. Я ожидаю, что когда я вызову метод startActivityForResult (), он выдаст мне список телефонных контактов. Что он делает, так это дает мне список всех потенциальных контактов, который включает в себя твиттер, фейсбук и все потенциальные адреса электронной почты, которые я отправил, а не только контакты, которые перечислены, когда я нажимаю на значок «Люди» на мой телефон. Код, который я использую для его вызова, находится здесь:

private static final int PICK_CONTACT_REQUEST = 1;//defined elsewhere but listed for clarity

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);

Всплывающий список начинается с сотен «неназванных» контактов (многие с фотографиями значков, которые выглядят как изображения в твиттере), но также включает в себя то, что выглядит как просто контакты электронной почты, включая то, что кажется каждым электронным письмом Craigslist. возможно, когда-либо отправил. Кто-нибудь может прояснить это для меня? как получить список «Люди» без всех дополнительных контактных данных?

1 Ответ

1 голос
/ 09 октября 2011

Есть несколько предопределенных действий со стандартными контактами приложения.

Я думаю, что вы ищете:

intent = new Intent(android.provider.Contacts.Intents.UI.LIST_CONTACTS_WITH_PHONES_ACTION);

Обновление: теперь это кажется устаревшим, начиная с API5, следует использовать ContactsContract .Хотя я не знаю этого API.

...