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

Android 正在寻找Telephony.Sms和CallLog.Calls之间的通用联系人ID,android,android-sqlite,android-contacts,Android,Android Sqlite,Android Contacts,目标:我正在尝试对来自相同(已知)联系人的短信和电话进行分组 我使用Telephony.SMS.Inbox.CONTENT\u URI和Telephone.SMS.Sent.CONTENT\u URI阅读短信 我使用CallLog.calls.CONTENT\u UTI读取呼叫 我通过以下方式获得联系人ID:使用Uri.withAppendedPath(PhoneLookup.CONTENT\u FILTER\u Uri,phoneNumber) 现在,有了这个电话查询。_ID,我想列出那个

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

  • 我使用
    Telephony.SMS.Inbox.CONTENT\u URI
    Telephone.SMS.Sent.CONTENT\u URI
    阅读短信
  • 我使用
    CallLog.calls.CONTENT\u UTI
    读取呼叫
我通过以下方式获得联系人ID:使用
Uri.withAppendedPath(PhoneLookup.CONTENT\u FILTER\u Uri,phoneNumber)

现在,有了这个
电话查询。_ID
,我想列出那个联系人的短信

遗憾的是,
Telephony.Sms.PERSON
似乎没有存储相同的联系人ID

问题:我如何列出电话查询中的短信。\u ID或者如果不可能,我如何实现我想要的:列出来自同一联系人的短信和电话


PS:
Telephony.textbasedmscolumns.PERSON
似乎指的是不推荐使用的
联系人。People
API…

Telephony.Sms.PERSON
实际上与
联系人contract.DataColumns.RAW\u CONTACT\u ID
匹配

所以我用了:

final Cursor cursor = getContentResolver()
    .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        projection, selection, null, null);
正在读取
联系人contract.DataColumns.RAW\u CONTACT\u ID