我正在尝试收听从包含特定关键字的特定发件人发送的非常特定的 SMS。为此,我创建了一个android.provider.Telephony.SMS_RECEIVED
通过清单绑定到的 BroadcastReciever。
如果我发现特定发件人发送包含该关键字的 SMS,我需要从我的应用程序发送 SMS。我通过onRecieve()
函数在我的应用程序中做到了这一点。
问题是我想听 SMS_SENT 和 SMS_DELIVERED 事件来了解短信是否成功发送/传递。为此,我正在通过以下方式注册这些接收器
context.registerReceiver(smsSentReciever, new IntentFilter(Consts.SENT));
context.registerReceiver(smsDeliveredReciver, new IntentFilter(Consts.DELIVERED));
虽然,我已经实例化了一个单独AsyncTask
的onRecieve
方法来完成这项工作,但我仍然收到以下错误
BroadcastReceiver components are not allowed to register to receive intents
我应该使用IntentService
而不是AsyncTask
fromonRecieve
吗?或者
我应该实例化一个IntentService
fromAsyncTask
执行onRecieve
吗?