2012-09-21 66 views
0

我想讓我的應用程序從Android Phone的通訊錄中獲取值。如何從Android的通訊錄中獲取註釋值

我試過People,ContactContracts.DataContactContracts.Contact.DataContactsContract.CommonDataKinds從電話本中讀取NOTE值的值。 但無法取得成功。請幫助我。

+0

請看我的答案,如果答案是幫助你,那麼請接受它。 –

回答

0

使用以下代碼從聯繫人獲取備註值。

Cursor cursor = getContentResolver().query(
     ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
cursor.moveToFirst(); 

for (int i=0; i<cursor.getCount(); i++){ 
    System.out.println("Hello"); 
    String contactId = cursor.getString(
      cursor.getColumnIndex(ContactsContract.Contacts._ID)); 

    String note = null; 
    String[] columns = new String[] { ContactsContract.CommonDataKinds.Note.NOTE }; 
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + 
      ContactsContract.Data.MIMETYPE + " = ?"; 
    String[] whereParameters = new String[] { 
      contactId, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE }; 
    Cursor contacts = getContentResolver().query(
      ContactsContract.Data.CONTENT_URI, columns, where, 
      whereParameters, null); 

    if (contacts.moveToFirst()) { 
     String rv = contacts.getString(0); 
     note = rv; 
    } else{ 
     String rv = contacts.getString(i); 
     note = rv; 
    } 
    contacts.close(); 
    System.out.println("Note is: " + note); 

    cursor.moveToNext();    
} 
+0

我怎樣才能得到其他值如電話,姓名等 String data = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)); 我試圖得到這樣的價值,但它不工作 – user2934930