【问题标题】:Running a service on Outgoing Calls in Oreo在 Oreo 的拨出电话上运行服务
【发布时间】:2018-06-26 13:20:10
【问题描述】:

我正在开发一个应用程序,只要执行对特定号码的呼叫,就需要运行一些代码(打开活动)。 在 API 24 及更低版本中,我在 Manifest 文件中注册了一个隐式接收器,并在扩展 BroadcastReceiver 的指定类中启动我的服务。但是,在 API 26 中,您无法在接收器中注册 android.provider.Telephony.OUTGOING_CALL,因为它不起作用。

来自 Android 文档:

注意:如果您的应用面向 API 级别 26 或更高级别,则不能使用 清单以声明隐式广播的接收器(广播 不专门针对您的应用程序),除了一些隐含的 不受该限制的广播。在大多数情况下,您 可以改为使用计划作业。

我在 medium 上读过几篇类似 https://medium.com/@benexus/background-services-in-android-o-862121d96c95 的文章。有像 JobSchedulerExplicit Receiver 这样的解决方案,但是第一个用于更改网络状态,我找不到在 OUTGOING_CALL 事件上触发作业的方法,而第二个在您的活动启动之前有效并且正在运行。

由于我的应用程序的性质,无论应用程序是否正在运行,我都需要监听拨出电话。如何在 API 26+ 中做到这一点?

【问题讨论】:

    标签: android broadcastreceiver outgoing-call


    【解决方案1】:

    请注意https://developer.android.com/guide/components/broadcast-exceptions ACTION_NEW_OUTGOING_CALL 不受您提到的奥利奥限制。

    如果您尝试过的代码无法正常工作,那么您应该发布该代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 2023-03-14
      • 2012-04-07
      • 1970-01-01
      相关资源
      最近更新 更多