`

如何判断android 短信发送(sendTextMessage)是否成功

阅读更多
//短信发送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();  


//广播注册

@Override  
	protected 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 直接发送短信方法附上代码.rar

      //短信发送成功给予提示   Toast.makeText(   Sample_11_1.this, //上下文  "恭喜你,短信发送成功!", //提示内容  5000 //信息显示时间  ).show();   v.setEnabled(true);//短信发送完成后恢复...

    自制发送短信程序,android,SmsManager与PendingIntent

    /*检查字符串是否为电话号码的方法,并回传true or false的判断值*/ public static boolean isPhoneNumberValid(String phoneNumber) { boolean isValid = false; /* 可接受的电话格式有: * ^\\(? : 可以使用 ...

    Android输入手机号发送短信示例.rar

    Android输入手机号发送短信示例,EditText number框中的是电话号码,EditText body框中的是短信内容:  public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法  super.onCreate...

    Android发送短信方法总结

    其中的sendTextMessage(num, null, content, pend, null)函数就是发送,具体介绍如下: SMS涉及的主要类SmsManager 实现SMS主要用到SmsManager类,该类继承自java.lang.Object类,下面我们介绍一下该类的主要成员...

    短信息发送流程

    详细的描述了短信息发送的流程,在android中,APP通过SmsManager.java一系列方法实现发送短信的功能,而发送的内容有很很多种,比如sendTextMessage、sendMultipartTextMessage、sendDataMessage等等,在这篇文章里...

    Android 向所有用户的手机发送短信.rar

    Android 向所有用户的手机发送短信,类似于群发,现在最好不要使用这种功能,发代码仅是为了学习编程技巧:  String phoneNumber = phones.getString(phones.getColumnIndex(  ContactsContract.CommonDataKinds....

    android 后台发短信

    后台发短信,并监听发送状态! public void sendMSG(String phoneNum, String content) { SmsManager smsManager = SmsManager.getDefault(); Intent itSend = new Intent(SMS_SEND_ACTIOIN); Intent ...

    android 学习笔记

    08:短信发送 使用系统类 SmsManager manager = SmsManager.getDefault(); manager.sendTextMessage(phonenumber, null, content, null, null); 权限: &lt;uses-permission android:name="android.permission....

    android中可以通过两种方式调用接口发送短信

    第一:调用系统短信接口直接发送短信;主要代码如下: 代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List&lt;String&gt; divideContents = smsManager.divideMessage(content); ...

Global site tag (gtag.js) - Google Analytics