我有一个活动,查找从本地sqlite数据库输入的电话号码,该数据库显示该号码的原始城市/州。部分活动还包括一项侦听电话上的来电和去电的服务。当进行呼叫或呼叫进入时,它会在屏幕底部显示一个Toast消息,该消息包含数据库中该号码的城市/州。据我所知,如果不让服务永远存在,就无法实现这一功能。现在我有一个警报设置,每小时运行一次,如果已经被杀死,重新启动服务。我记得一个以这种方式工作的旧应用程序称为“未接来电”,它根据收到的消息(未接来电,短信,电子邮件等)更改了通知LED颜色。我的问题是,有更好的方法来做这件事吗?我知道保持服务永远运行是非常不受欢迎的,但我没有看到任何其他方法,除非我遗漏了什么。
谢谢!
答案 0 :(得分:0)
你在Evan评论中描述的内容正是我在自己的应用程序中所做的,它听取了传入和传出的呼叫(一个名为MinuteWatch的小应用,没人买)。
来电没有广播意图,那么你应该怎么做呢?我想这是因为它们不能延迟或以其他方式搞乱来电,因为它们至关重要,但我认为它会谴责你无限的服务。这是我能想到的唯一一个特别不可勾解的东西。即使是每15分钟检查一次推文,你也可以通过定期闹钟做到这一点,而且没有服务。
即使Android团队不想要INCOMING_CALL事件,我认为他们应该考虑放入名为CALL_RECEIVED和CALL_ENDED以及CALL_HELD的广播Intent,这至少会在事后通知您。你还应该如何建立一个备用通话记录工具?