选择具有相同名称和两个以上号码的联系人

时间:2013-04-04 07:21:03

标签: java android

我试图在我的项目中使用以下方法从手机中选择联系人。工作正常.....

  • 但在某些情况下我不会工作... 对于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;
 }
 }

...谢谢

1 个答案:

答案 0 :(得分:0)

而不是

phones.moveToFirst();

您可以浏览光标以获取更多项目

int colIndex = phones.getColumnIndex("data1");
while (phones.moveToNext()) {
    System.out.println("Found a number : " + phones.getString(colIndex));
}