我一直在使用CLogViewRecent
和MLogViewChangeObserver
来监控S60第5版手机上的通话记录。
MLogViewChangeObserver
有三个功能:
virtual void HandleLogViewChangeEventAddedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount);
virtual void HandleLogViewChangeEventChangedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount);
virtual void HandleLogViewChangeEventDeletedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount);
但是,只有前两个会定期调用,而HandleLogViewChangeEventDeletedL
有时会被调用。
E.g。当我从“呼叫日志应用程序”的“已接来电”列表中的菜单中选择“清除列表”时,不会调用HandleLogViewChangeEventDeletedL
。
有人能指出发生这种情况的原因,以及如何纠正这个问题?
谢谢。
答案 0 :(得分:2)
阅读Symbian^3 logcli source,“清除列表”是与“已删除事件”不同的事件。它并未反映在MLogViewChangeObserver
回调mixin中,仅在MLogViewChangeObserverInternal
HandleLogViewChangeEventLogClearedL()
中反映出来。这就是它发生的原因。抱歉,无法为您提供解决方法,而无法实现您自己的logsrv客户端,以便按您希望的方式处理ELogChangeTypeLogCleared
更改类型。
也许你可以描述一下你想在大图片上实现的目标,以便有可能提供其他选择。