寻找Telephony.Sms和CallLog.Calls之间的通用联系人ID

时间:2015-06-23 09:26:43

标签: android android-sqlite android-contacts

目标:我尝试将来自同一(已知)联系人的短信和来电分组。

  • 我使用Telephony.Sms.Inbox.CONTENT_URITelephone.Sms.Sent.CONTENT_URI阅读短信。
  • 我使用CallLog.Calls.CONTENT_UTI来阅读来电。

我通过关注android is CallLog.Calls._ID the same with the contact id?获取联系人ID:使用Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, phoneNumber)

现在,有了这个PhoneLookup._ID,我想列出该联系人的短信。

可悲的是Telephony.Sms.PERSON似乎没有存储相同的联系人ID。

问题:我如何列出来自PhoneLookup._ID的短信,或者如果不可能,我怎样才能达到我的目的:列出来自同一联系人的短信和来电。

PS:Telephony.TextBasedSmsColumns.PERSON似乎引用了已弃用的Contacts.People API ...

1 个答案:

答案 0 :(得分:0)

Telephony.Sms.PERSON实际上匹配ContactsContract.DataColumns.RAW_CONTACT_ID

所以我用过:

final Cursor cursor = getContentResolver()
    .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        projection, selection, null, null);

阅读ContactsContract.DataColumns.RAW_CONTACT_ID

https://developer.android.com/reference/android/provider/ContactsContract.DataColumns.html#RAW_CONTACT_ID