Не полный ответ, но может быть полезен в любом случае:
// Let user select (multiple) from a list of contacts with email addresses
Intent i = new Intent(Intent.ACTION_GET_CONTENT, Email.CONTENT_URI);
startActivityForResult(Intent.createChooser(i, ""), MY_RESULT_1);
В onActivityResult вы, очевидно, просто получите Uri (в data.getData ()), который представляет весь набор контактов.Отлично.
В HTC Desire / Froyo data.getExtras () содержит три ArrayLists, один из которых, по-видимому, содержит Id записей, выбранных пользователем.
Set<String> keys = data.getExtras().keySet();
ArrayList<Integer> ids = null;
for (String s : keys) {
Object o = data.getExtras().get(s);
if (o instanceof ArrayList) {
ArrayList a = (ArrayList) o;
if (a.size() > 0 && a.get(0) instanceof Integer) {
ids = a;
}
}
}
Вы можете использовать их, чтобы отфильтровать результат от запроса data.getData () Uri.
Не очень, и, возможно, специфично для HTC.Ваш пробег может варьироваться.
Если кто-то может указать на более умный способ, я - счастливый слушатель :)