2011-08-16 17 views
4

我能夠獲取聯繫人列表及其基本信息,如:姓名。電話,電子郵件,即時消息,便箋,組織用於備份目的,通過使用ContactsContract.Contacts.CONTENT_URI來獲得不同信息類型的聯繫人列表和其他特定URI。查詢Android聯繫人以獲取ACCOUNT_TYPE和ACCOUNT_NAME

我需要,以全面恢復所有信息兩個領域:

ContactsContract.RawContacts.ACCOUNT_TYPE

ContactsContract.RawContacts.ACCOUNT_NAME

任何人都可以指導我如何要獲取此信息,請從ContactsContract.Contacts.CONTENT_URI瞭解聯繫人ID?

謝謝

回答

10
public ContactAccount getContactAccount(Long id,ContentResolver contentResolver) { 

     ContactAccount account = null; 

     Cursor cursor = null; 
     try { 

      cursor = contentResolver.query(ContactsContract.RawContacts.CONTENT_URI, 
        new String[]{ContactsContract.RawContacts.ACCOUNT_NAME, ContactsContract.RawContacts.ACCOUNT_TYPE}, 
        ContactsContract.RawContacts.CONTACT_ID +"=?", 
        new String[]{String.valueOf(id)}, 
        null); 

      if (cursor != null && cursor.getCount() >0) 
      { 
       cursor.moveToFirst(); 
       account = new ContactAccount(); 
       account.setAccountName(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME))); 
       account.setAccountType(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE))); 
       cursor.close(); 
      } 
     } catch (Exception e) { 
      Utils.log(this.getClass().getName(), e.getMessage()); 
     } finally{ 
      cursor.close(); 
     } 

     return(account); 
    }