为了便于查看通话记录,通常要对通话记录进行分组。本质上来说这没什么难度,只需要用ContentResolver去读数据库,剩下的就是策略问题。代码在com/csipsimple/ui/calllog/CallLogGroupBuilder.java中,关键是addGroups函数。其分组策略其实很简单:按照时间顺序,根据电话号码和呼叫类型来分组。
显然需要分在一组的应该是号码相同。其次,相邻的呼叫,呼入呼出分在一组;未接分在一组。它是按顺序来的,也就是说,同一个号码,如果呼入一次,未接一次,呼出一次,实际上还是会显示为三组。
这种策略是非常粗糙的。很多系统自带的分组策略进行了更多优化,当然,这就涉及到用户体验问题,到底怎样才是最好的,就见仁见智了。