我试图在我的项目中使用以下方法从手机中选择联系人。工作正常.....
但在某些情况下我不会工作... 对于Ex :如果是同一个名字,有多个号码,如个人/家庭..
在这个阶段,它只会选择第一个号码。所以我无法从中挑选联系人。请给出解决方案.....
此处代码
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String id =c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone =c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1")) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,
null, null);
phones.moveToFirst();
cNumber = phones.getString(phones.getColumnIndex("data1"));
System.out.println("number is:"+cNumber);
}
/*name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Textcontact.setText(name);*/
edt.setText(cNumber);
}
}
break;
}
}
...谢谢
答案 0 :(得分:0)
而不是
phones.moveToFirst();
您可以浏览光标以获取更多项目
int colIndex = phones.getColumnIndex("data1");
while (phones.moveToNext()) {
System.out.println("Found a number : " + phones.getString(colIndex));
}