/**
* 发送的广播
**/
String SENT_SMS_ACTION = "SENT_SMS_ACTION";
// 注册广播
registerReceiver(sendMessage, new IntentFilter(SENT_SMS_ACTION));
Receiver里用传进来的参数Intent intent实现
intent.getIntegerExtra(String key);
就可以获得参数,可以真正在实现的时候发现,在receiver里始终取不到参数,再经过一番查找,发现要把PendingIntent.getBroadcast的第四个参数设置于PendingIntent.FLAG_UPDATE_CURRENT,测试果然可以
/** 手机号码 与输入内容 必需不为空 **/
if (!TextUtils.isEmpty(str))
for (String number : sendList) {
Intent sentIntent = new Intent(SENT_SMS_ACTION);
sentIntent.putExtra("SEND_MSG", number);
// 创建一个PendingIntent对象
PendingIntent pi = PendingIntent.getBroadcast(this, 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);
// 发送短信
sManager.sendTextMessage(number, null, str, pi, null);
// 循环已发送的数据删除
for (CustomerCard customerCard : cardList) {
if (customerCard.getTelephone().equalsIgnoreCase(number)) {
cardList.remove(customerCard);
}
}
}
private BroadcastReceiver sendMessage = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String phoneNum = intent.getStringExtra("SEND_MSG");
switch (getResultCode()) {
case Activity.RESULT_OK:
Log.e("Send Message to ", phoneNum + " success!");
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
case SmsManager.RESULT_ERROR_RADIO_OFF:
case SmsManager.RESULT_ERROR_NULL_PDU:
default:
Log.e("Send Message to ", phoneNum + " fail!");
break;
}
}
};