如何判断android 短信发送(sendTextMessage)是否成功
16lz
2021-01-23
//短信发送API说明
//广播定义
SmsManager smsManager = SmsManager.getDefault();smsManager.sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent);/** * 参数说明 * destinationAddress:收信人的手机号码 * scAddress:发信人的手机号码 * text:发送信息的内容 * sentIntent:发送是否成功的回执,用于监听短信是否发送成功。 * DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。 */
//短信群发
for (int i = 0; i < contactList.size(); i++) { Intent itSend = new Intent(SENT_SMS_ACTION); itSend.putExtra(KEY_PHONENUM, contactList.get(i)); PendingIntent mSendPI = PendingIntent.getBroadcast(getApplicationContext(), i/××requestCode××/, itSend, PendingIntent.FLAG_ONE_SHOT/××flag××/);//这里requestCode和flag的设置很重要,影响数据KEY_PHONENUM的传递。String content = mContext.getString(R.string.test);smsManager.sendTextMessage(contactList.get(i), null, content, mSendPI, null);}
public static final String SENT_SMS_ACTION = "SENT_SMS_ACTION";private SMSSendResultReceiver mSMSReceiver = new SMSSendResultReceiver();private IntentFilter mSMSResultFilter = new IntentFilter();
//广播注册
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mSMSFilter.addAction(SENT_SMS_ACTION);registerReceiver(mSMSReceiver, mSMSResultFilter);...}
//广播定义
class SMSSendResultReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String phoneNum = intent.getStringExtra(KEY_PHONENUM); // TODO Auto-generated method stub switch(getResultCode()) { case Activity.RESULT_OK: System.out.println("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: System.err.println("Send Message to "+phoneNum+" fail!"); break; } } }
更多相关文章
- Android 实现短信的备份恢复
- Android 手机号码格式验证
- android导出通讯录,通话记录,短信
- android使用Intent操作拨打号码发送短信
- 基于Android的短信管理系统
- Android 短信数据库详细介绍
- Android短信发送流程之长短信发送(原)
- 清单文件,测试,打电话和发短信应用