2012-01-15 149 views
0

如何获取特定联系人的电话号码?Android SDK-获取特定联系人的电话号码

到目前为止,我有这个

while (cursor.moveToNext()) { 

     String displayName = cursor.getString(cursor 
       .getColumnIndex(ContactsContract.Data.DISPLAY_NAME)); 
     String contactId = cursor.getString(cursor.getColumnIndex( 
       ContactsContract.Contacts._ID)); 



     if (Integer.parseInt(cursor.getString(
        cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 


       Cursor phones = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
       ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{contactId}, null); 
       while (phones.moveToNext()) { 
        phoneNumber = phones.getString( 
        phones.getColumnIndex( 
        ContactsContract.CommonDataKinds.Phone.NUMBER));     
        } 
       //phones.close(); 
     } 
     else 
      phoneNumber = "No number"; 


      tv.append(displayName); 
      tv.append(" "); 
      tv.append(phoneNumber); 
      tv.append("\n"); 
     } 
     cursor.close(); 


    } 

虽然我得到正确的显示名称,对于他们中的每一个,我得到在目录中的第一个联系人的电话号码。 任何想法?

+0

尝试将一些调试语句转储到光标的所有内容中,以便可以看到里面的内容。 – JoxTraex 2012-01-15 14:12:45

回答

0

如果您只想显示姓名和电话号码,您可以简单地查询包含DISPLAY_NAME_PRIMARY列的Phones.CONTENT_URI。

相关问题