我一直在使用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
仅有时被调用。例如。从 call 日志应用程序的“已接电话”列表中的菜单中选择“清除列表”时,未调用
HandleLogViewChangeEventDeletedL
。谁能指出发生这种情况的原因,以及如何纠正这种情况?
谢谢。
最佳答案
读取Symbian^3 logcli source时,“列表已清除”是与“事件已删除”不同的事件。它没有反射(reflect)在MLogViewChangeObserver
回调混合中,仅反射(reflect)在MLogViewChangeObserverInternal
中为HandleLogViewChangeEventLogClearedL()
。这就是为什么它正在发生。抱歉,不能为您提供解决方法,除非您实现自己的logsrv客户端以所需的方式处理ELogChangeTypeLogCleared
更改类型。
也许您可以描述您想要在总体上实现的目标,以便有可能提供其他选择。