SMS_RECEIVED的动态广播注册无效

时间:2017-02-08 12:48:41

标签: android android-intent android-broadcastreceiver

SMS_RECEIVED文件

中为AndroidManifest.xml操作注册广播接收器
<receiver android:name=".SmsReceiver">
   <intent-filter>
      <action android:name="android.provider.Telephony.SMS_RECEIVED" />
   </intent-filter>
</receiver>

按预期工作,调用SmsReceiver.onReceive(Context context, Intent intent)。 试图以动态注册

 Intent inte = registerReceiver(
                 new SmsReceiver(), 
                 new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION));

SmsReceiver.onReceive(Context context, Intent intent)永远不会被调用。

通知

我该如何解决?

1 个答案:

答案 0 :(得分:3)

  

我该如何解决?

首先使用正确的Intent操作。

两个动作字符串与短信发送有关。什么适用于任何应用程序 - 以及您在<intent-filter> - is SMS_RECEIVED_ACTION中使用的内容。仅适用于用户选择的SMS客户端 - 以及您尝试使用IntentFilter - is SMS_DELIVER_ACTION的内容。这些都不一样。