LAST_TIME_CONTACTED值异常:contacts2.db旧通话记录丢失致日期错误问询
关于联系人
last_time_contacted字段异常的分析 你的理解大体是正确的,这里给你补充一些关键细节和验证方向:
核心问题:系统通话日志的自动清理机制
Android系统默认会自动清理旧通话记录(不同厂商、系统版本的保留规则有差异,通常是数月到1年左右)。当早期的通话记录被清理后,contacts2.db里的last_time_contacted字段并不会保留原始历史时间——如果没有其他关联交互记录(比如短信、邮件)来更新这个字段,系统就会将其重置为Unix时间戳起始点(0),转换为日期就是你看到的"01/01/1970"。对应你的场景的解释
你要找的通话记录是两年前的,而当前日志仅保留了一年半内的记录,这说明那条2016年的通话记录已经被系统自动删除了。此时contacts2.db找不到该联系人的有效最近联系记录,就会用默认的epoch时间填充,最终显示出错误的日期。验证方法
你可以查看contacts2.db中的calls表(存储通话记录的表),如果确实找不到2016年的那条通话记录,就能百分百确认是日志清理导致的字段重置。另外,如果你和该联系人还有未被清理的短信或其他交互记录,last_time_contacted字段可能会显示那条交互的时间,而非1970年。
内容的提问来源于stack exchange,提问作者Sergey V.
相关产品推荐
相关产品推荐

