【问题标题】:onReceive - never called in sms apponReceive - 从未在短信应用中调用
【发布时间】:2014-08-05 11:42:04
【问题描述】:

我在mainfest.xml 中声明了我的BroadcastReceiver,但从未调用过onReceive() 方法。怎么了?我不想使用注册/注销方法。

活动:

Intent sentI = new Intent("SMS_SENT");
PendingIntent sentPi = PendingIntent.getBroadcast(this, 0, sentI, 0);
SmsManager manager = SmsManager.getDefault();
manager.sendTextMessage(number, null, message.toString(), sentPi, null);  

SmsSentReceiver:

 public class SmsSentReceiver extends BroadcastReceiver {


 @Override
 public void onReceive(Context context, Intent intent) {

     switch (getResultCode()) {
         case Activity.RESULT_OK:
             Log.i("SmsSentReceiver", "SMS sent");
             break;
         case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
             Log.i("SmsSentReceiver", "Generic failure");
             break;
         case SmsManager.RESULT_ERROR_NO_SERVICE:
             Log.i("SmsSentReceiver", "No service");
             break;
         case SmsManager.RESULT_ERROR_NULL_PDU:
             Log.i("SmsSentReceiver", "Null PDU");
             break;
         case SmsManager.RESULT_ERROR_RADIO_OFF:
             Log.i("SmsSentReceiver", "Radio off");
             break;
      }
   }   
}

AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />


<receiver android:name="com.mateusz.simplesmsapp.broadcasts.SmsSentReceiver">
   <intent-filter>
        <action android:name="android.provider.Telephony.SMS_SENT" />
   </intent-filter>
</receiver>

【问题讨论】:

  • 尝试在意图过滤器中添加
  • 将其优先级设置为 999... 其最大值。

标签: android sms broadcastreceiver android-manifest android-pendingintent


【解决方案1】:

您已在清单中为此操作注册了接收器:"android.provider.Telephony.SMS_SENT"。但是,您为广播创建的 Intent 正在使用此操作:"SMS_SENT"。这些需要匹配。

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多