【发布时间】: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