2014-09-10 109 views
1

我從本地地址簿中獲取所有聯繫人以及他們的姓名+電話號碼,但問題在於它是我與電子郵件地址之間交換的返回電子郵件地址,以及Skype ID的事情不需要:)從本地地址檢索聯繫人

public void fetchContacts() { 
     String phoneNumber = null; 
     String email = null; 

     Uri CONTENT_URI = ContactsContract.Contacts.CONTENT_URI; 
     String _ID = ContactsContract.Contacts._ID; 
     String DISPLAY_NAME = ContactsContract.Contacts.DISPLAY_NAME; 
     String HAS_PHONE_NUMBER = ContactsContract.Contacts.HAS_PHONE_NUMBER; 
     Uri PhoneCONTENT_URI = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
     String Phone_CONTACT_ID = ContactsContract.CommonDataKinds.Phone.CONTACT_ID; 
     String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER; 

     Uri EmailCONTENT_URI = ContactsContract.CommonDataKinds.Email.CONTENT_URI; 
     String EmailCONTACT_ID = ContactsContract.CommonDataKinds.Email.CONTACT_ID; 
     String DATA = ContactsContract.CommonDataKinds.Email.DATA; 
     StringBuffer output = new StringBuffer(); 

     ContentResolver contentResolver = getContentResolver(); 

     Cursor cursor = contentResolver.query(CONTENT_URI, null, null, null, null); 

     // Loop for every contact in the phone 
     if (cursor.getCount() > 0) { 
      while (cursor.moveToNext()) { 
       String contact_id = cursor.getString(cursor.getColumnIndex(_ID)); 
       String name = cursor.getString(cursor.getColumnIndex(DISPLAY_NAME)); 
       int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(HAS_PHONE_NUMBER))); 
       if (hasPhoneNumber > 0) { 
        output.append("\n Name:" + name); 
        // Query and loop for every phone number of the contact 
        Cursor phoneCursor = contentResolver.query(PhoneCONTENT_URI, null, Phone_CONTACT_ID + " = ?", new String[]{contact_id}, null); 
        while (phoneCursor.moveToNext()) { 
         phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(NUMBER)); 
         output.append("\n Phone number:" + phoneNumber); 
        } 
        phoneCursor.close(); 
        // Query and loop for every email of the contact 
       } 
       output.append("\n"); 
      } 
      outputText.setText(output); 
     } 


<TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

回答

1

你的問題不是Android相關的,而是一個Java問題。

在你的最大while循環確保在hasPhoneNumber如果continue關鍵字,或者只是移動output.append("\n")到IF。

乾杯。 :-)

相關問題