2

連絡先の電話番号を選ぶ必要があり、以前はこのようにしていました...

インテント インテント = 新しいインテント(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(意図、GET_CONTACT_FROM_RESULT);

ただし、連絡先に複数の番号がある場合、pick アクティビティは 1 つの連絡先のみを一覧表示し、1 つの電話のみを選択できます。

連絡先のすべての電話番号を表示するにはどうすればよいですか?

4

2 に答える 2

1

電話ごとに 1 つの連絡先を表示するよう連絡先ピッカーに指示することができるため、複数の電話の連絡先が複数回表示されます。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, PICK_CONTACT);
于 2012-06-20T11:44:15.837 に答える
0
 public Map<String, String> lookupPhoneNoAndContactId(){
    Map<String, String> phonenumbers = new HashMap<String, String>();
    Cursor cursor = null;
    try {
        cursor = contentResolver.query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                null, null, null);
        while (cursor.moveToNext()) {
            phonenumbers
                    .put(cursor
                            .getString(cursor
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)),
                            cursor.getString(cursor
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)));
        }
        return phonenumbers;
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }

}
于 2012-06-20T11:55:38.717 に答える