2017-04-30 55 views
0

給定一個電話號碼,我首先找出具有此號碼的聯繫人的LOOKUP_KEY。從那裏,有沒有辦法用單個查詢檢索原始聯繫人列表?如何獲取與特定LOOKUP_KEY聯繫的所有原始聯繫人?

我嘗試以下方法

ContentResolver cr = context.getContentResolver(); 
     // Get all RawContacts associated with lookupKey 
     Cursor contactCursor = cr.query(
       Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookup_key), 
       new String[]{ContactsContract.RawContacts._ID}, 
       null, 
       null, 
       null); 

但contactCursor總是包含一個條目,即使查詢合同有多個原料接觸。 說實話,我不明白爲什麼上面的查詢甚至會返回任何內容,因爲表ContactsContract.Contacts中沒有RawContacts條目。我猜它只是返回這個表的_ID條目,這是Contact_ID(不是RawContact的Id)。

回答

1

不要在這種情況下使用LOOKUP_KEY,而不是得到的電話號碼Contacts._ID,然後讓所有RawContacts通過CONTACT_ID

cr.query(RawContacts.CONTENT_URI, 
    new String[]{ RawContacts._ID }, 
    RawContacts.CONTACT_ID + "=" + theContactId, 
    null, 
    null); 
+0

感謝MARMOR。由於起始點是電話號碼,可以直接通過PhoneLookup查詢而不是Lookup_Key直接獲取聯繫人ID嗎? ,這將爲我節省一個查詢(從Lookup_Key解析聯繫人ID)。 – user2795888

+0

是的,正是我的意思:電話號碼> contact-id> raw-contacts – marmor

相關問題