2010-02-05 88 views
7

給定聯繫人ID,我可以通過對這些字段中的每個字段進行不同的查詢來獲得各種聯繫人詳細信息(如姓名,電話號碼,電子郵件ID等)。如何在Android中獲取聯繫人的所有詳細信息

但有沒有一種方法來獲取所有與此聯繫人ID相關的所有細節,通過一個單一的查詢?

+0

@Octavian:我不確定我是否同意從問題標題中刪除* Android *。對於其他技術的問題,這似乎是相當普遍的現象。這可能是meta – NotMe 2011-02-05 23:41:56

+0

的編輯問題@ChrisLive我不得不承認,你可能是對的。我會改回它。 – 2011-02-06 12:04:09

回答

12

由於它引用了棄用的類,所以不得不在Content Providers上更改一下教程,這可能會有所幫助。

import android.provider.ContactsContract.Contacts; 
import android.database.Cursor; 

// Form an array specifying which columns to return, you can add more. 
String[] projection = new String[] { 
         ContactsContract.Contacts.DISPLAY_NAME, 
         ContactsContract.CommonDataKinds.Phone 
         ContactsContract.CommonDataKinds.Email 
         }; 

Uri contacts = ContactsContract.Contacts.CONTENT_LOOKUP_URI; 
// id of the Contact to return. 
long id = 3; 

// Make the query. 
Cursor managedCursor = managedQuery(contacts, 
        projection, // Which columns to return 
        null,  // Which rows to return (all rows) 
           // Selection arguments (with a given ID) 
        ContactsContract.Contacts._ID = "id", 
           // Put the results in ascending order by name 
        ContactsContract.Contacts.DISPLAY_NAME + " ASC"); 
+0

感謝您的及時回覆。但我使用1.6 SDK和ContactsContract似乎適用於2.0及以上版本。 1.6以下版本的任何解決方案Android – pankajagarwal 2010-02-05 08:58:44

+0

@frieza回頭看看答案頂部鏈接的Content Providers教程。顯然安東尼接受了教程,並在發佈他的答案時將其更新至2.0,但您需要的是原始教程。 – 2010-02-05 14:59:13

+0

呃,這是我的錯,我繼續前進,並認爲它是2.0 SDK,但mbaird是正確的,「內容提供商」鏈接中的教程應該適合您。 – 2010-02-05 15:19:57

相關問題