2012-01-15 121 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。

相關問題