我正在开发一个应用程序,我在其中存储来自CallLog
提供程序的调用日志详细信息。
Android将调用日志存储在数据库中,我正在从该数据库中复制新行。
现在我想在用户结束通话时复制通话详情。为此,我使用了PhoneStateListener
,我用它来监听状态响铃,摘机和空闲模式
但是在调用结束后,idle方法调用了不止一次,所以我不能使用它。
其次我使用ContentObserver
作为调用日志表,当Android在其中插入调用详细信息时,它会给我onChanged事件,那时我会将这些详细信息复制到我的数据库中。
这是使用ContentObserver
的正确方法吗?
有没有其他方法可以获得刚刚结束的新电话的详细信息?
答案 0 :(得分:5)
这听起来像是对ContentObserver
的有效使用。先前的尝试是:Intent to be fired when a call ends?。
我建议您使用idle方法,只需跟踪数据库或变量或首选项中的状态(因此,当手机从OFFHOOK变为IDLE时,您知道呼叫已结束,但当它从IDLE变为IDLE时,那么您什么都不做。)
祝你好运。