5

インテントとデフォルトの連絡先アプリを使用して、電話番号のみの連絡先から選択することは可能ですか?

多分これのいくつかの変更(すべての連絡先からの選択を示しています):

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, CONTACT_PICKER_ID);
4

2 に答える 2

7
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);
于 2012-12-18T13:43:23.877 に答える
3

連絡先でカーソルを開き、電話番号を含む連絡先を取得できます。このカーソルを使用して、言及したインテントから表示される連絡先ピッカー アクティビティを再作成できます (選択するリストビューにそれらをスローします)。

        ContentResolver cr = getContentResolver();
        Cursor phoneCur = cr.query( 
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                null,
                null, 
                null, 
                null); 
        while (phoneCur.moveToNext()) { 
            String phone = phoneCur.getString(
                      phoneCur.getColumnIndex(
                              ContactsContract.CommonDataKinds.Phone.DATA));
            //do something, check if empty...
        } 
        phoneCur.close();

このアプローチでは、マニフェストで連絡先の読み取り権限も必要になります

<uses-permission android:name="android.permission.READ_CONTACTS"/>
于 2012-08-23T20:37:44.920 に答える