我一直在使用CLogViewRecentMLogViewChangeObserver来监视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更改类型。

也许您可以描述您想要在总体上实现的目标,以便有可能提供其他选择。

09-07 07:25