2012-01-15 14 views
0

特定の連絡先の電話番号をIDで取得するにはどうすればよいですか?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(); 


    } 

があると私は正しい表示名を取得しながら、それらのそれぞれの1のために私はカタログの最初の連絡先の電話番号を取得します。 アイデア

+0

デバッグステートメントをいくつか入れて、カーソルの中にすべてをダンプして、内部に何があるかを確認してください。 – JoxTraex

答えて

0

表示名と電話番号だけが必要な場合は、DISPLAY_NAME_PRIMARY列を含むPhones.CONTENT_URIを照会することができます。

関連する問題