相关疑难解决方法(0)

在android Oreo中对传入的SMS运行服务

我正在开发一个应用程序,只要收到短信,就需要运行一些代码(网络).
在API 25和更低版本中它很好,我receiver在Manifest文件中注册了一个隐式文件,并在扩展的指定类中启动我的服务BroadcastReceiver.但是在API 26中,您无法注册android.provider.Telephony.SMS_RECEIVED,receiver因为它不起作用.

来自Android文档:

注意:如果您的应用程序的目标是API级别26或更高级别,则不能使用清单来声明隐式广播的接收者(特定于您的应用程序的广播),除了一些免于该限制的隐式广播.在大多数情况下,您可以使用预定作业.

在媒体上看过几篇像这样的文章.有喜欢的解决方案,JobScheduler或者Explicit Receiver,但是第一个被用于网络状态的变化,我无法找到一个方法来触发任务SMS_RECEIVED的事件,第二个是有效的,直到你的活动启动并运行.

由于我的应用程序的性质,我需要监听传入的短信,无论应用程序是否正在运行.如何在API 26+中做到这一点?

编辑

也许Android网站上的JobInfoBuilder doc中代码可以提供帮助.它监视设备上照片的变化,并在更改时启动作业.但是我找不到合适的Uri用短信做同样的事情(甚至不确定是否有可能通过短信监听短信ContentObserver)

android broadcastreceiver receiver android-jobscheduler

6
推荐指数
1
解决办法
3999
查看次数