我正在开发一个android应用程序,它可以检索通话记录并将其存储在文本文件中。我使用ContentObserver来观察更改,并在发生更改时获取更新后的条目。如果我收到未接来电、来电以及通过拨打电话簿中的号码打出电话,我可以正确地获取条目。如果我通过单击呼叫日志中的号码进行呼出,则onChange()方法将被调用三次。在进行调用之前,一旦我从调用日志中选择了名称,就会调用onChange(),以便检索前一个事件一次。一旦发出调用,传出事件将被检索两次,总共生成三个条目。请务必给我提个解决方案。谢谢!
发布于 2012-02-07 17:02:25
您在哪个URI中注册了观察者。是android.provider.CallLog.Calls.CONTENT_URI吗?如果是这样,那么onChange()方法将只被调用一次。
此外,依赖内容提供商也不是一个好主意。请参阅http://android-developers.blogspot.com/2010/05/be-careful-with-content-providers.html。您可以尝试将broadcast receiver与actions android.intent.action.PHONE_STATE android.intent.action.NEW_OUTGOING_CALL一起使用,而不是使用内容观察器
https://stackoverflow.com/questions/9172547
复制相似问题