Android:如何从通话记录查询中获取联系人图片

时间:2011-12-03 15:01:33

标签: android

我创建了一个显示电话通话记录的活动(就像本机通话记录一样)。现在我想在每个条目旁边显示联系人图片。要获得上周的通话记录,我使用了以下查询:

String[] projection = new String[]
        { Calls.DATE, Calls.NUMBER, Calls.DURATION, Calls.CACHED_NAME, Calls.TYPE };

    Cursor mCur = activity.managedQuery(CallLog.Calls.CONTENT_URI, projection, Calls.DATE + ">?", new String[]
        { String.valueOf(weekAgo.getTime()) }, Calls.DATE + " DESC");

无法找到获得每张参赛图片的好方法。使用此查询,我得到的日志数据没有联系人ID或照片ID的指示。

从我拥有的数据(如电话号码)中以任何方式将联系人照片作为位图获取?我想要原生android调用日志中显示的图片(即使它是同步的...)

我使用的是SDK 8.(ContactsContract)

1 个答案:

答案 0 :(得分:0)

CallLog内容提供商未记录有关联系人的大量信息,因此CallLog与联系人之间没有关系关系。例如,如果用户删除联系人该怎么办?如果CallLog持有某种指向联系人的硬标识符,那么CallLog会导致某种外键违规。

欢迎您使用CACHED_NAMECACHED_NUMBER_LABELCACHED_NUMBER_TYPE来尝试查找与给定通话相关联的联系人,但您需要处理无法找到此类联系人的情况联系人,因为联系人不存在或联系人数据发生变化(例如,新的电话号码)。