インテントとデフォルトの連絡先アプリを使用して、電話番号のみの連絡先から選択することは可能ですか?
多分これのいくつかの変更(すべての連絡先からの選択を示しています):
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, CONTACT_PICKER_ID);
インテントとデフォルトの連絡先アプリを使用して、電話番号のみの連絡先から選択することは可能ですか?
多分これのいくつかの変更(すべての連絡先からの選択を示しています):
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, CONTACT_PICKER_ID);
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);
連絡先でカーソルを開き、電話番号を含む連絡先を取得できます。このカーソルを使用して、言及したインテントから表示される連絡先ピッカー アクティビティを再作成できます (選択するリストビューにそれらをスローします)。
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"/>