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

Looking for a common Contact ID between Telephony.Sms and CallLog.Calls

目标: 我正在尝试对来自相同(已知)联系人的短信和电话进行分组。

我通过以下 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...

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