首页 > 解决方案 > Android:更改联系人时,带有广播接收器的前台服务停止工作

问题描述

所以我有这个 Android (API 29) 应用程序,我在其中使用运行广播接收器的前台服务,因此该应用程序可以在关闭或用户重新启动设备时检测来电。我还有一个问题,情况如下:

  1. 手机会检测到来电
  2. 它将尝试查看来电中的电话号码是否在联系人列表中
  3. 如果来电号码保存在通讯录中,来电者信息正常显示
  4. 如果传入的电话号码对联系人“未知”,它将获取有关呼叫者的信息并将其显示在 SYSTEM_ALERT_WINDOW 中。

问题是: 如果您要在前台服务运行时更改联系人或删除号码。广播接收器将停止工作。如果您随后接到电话,广播接收器会出于某种原因忽略它。

如果您要退出应用程序/服务然后重新启动它,一切都会正常进行,直到您对联系人列表进行更改。

谢谢你的帮助

标签: androidbroadcastreceiverandroid-serviceandroid-contactsforeground-service

解决方案


从联系人列表中获取联系人似乎存在问题。我最终尝试了另一种从联系人列表中获取联系人的方法。这看起来解决了这个问题,但不确定联系人检查如何破坏以前的实现。


推荐阅读