android发送短信指定收件人,在Android中,是否可以在代码中向多个收件人发送短信?...

使用smsManager类可以同时向多个号码发送相同的短信吗?或者我需要做一些循环?

我想从我的应用程序中发送短信而不是通过消息传递程序.

解决方法:

在这里,我附加源代码,我已经做了以编程方式发送消息.

短信:

public class SMS extends Activity {

Button btnSendSMS;

EditText txtPhoneNo;

EditText txtMessage;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnSendSMS = (Button) findViewById(R.id.btnSendSMS);

txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo);

txtMessage = (EditText) findViewById(R.id.txtMessage);

btnSendSMS.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

String message = txtMessage.getText().toString();

String phoneNo = txtPhoneNo.getText().toString();

StringTokenizer st=new StringTokenizer(phoneNo,",");

while (st.hasMoreElements())

{

String tempMobileNumber = (String)st.nextElement();

if(tempMobileNumber.length()>0 && message.trim().length()>0) {

sendSMS(tempMobileNumber, message);

}

else {

Toast.makeText(getBaseContext(),

"Please enter both phone number and message.",

Toast.LENGTH_SHORT).show();

}

}

// if (phoneNo.length()>0 && message.length()>0)

// sendSMS(phoneNo, message);

// else

// Toast.makeText(getBaseContext(),

// "Please enter both phone number and message.",

// Toast.LENGTH_SHORT).show();

}

});

}

private void sendSMS(String phoneNumber, String message)

{

String SENT = "SMS_SENT";

String DELIVERED = "SMS_DELIVERED";

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,

new Intent(SENT), 0);

PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,

new Intent(DELIVERED), 0);

//---when the SMS has been sent---

registerReceiver(new BroadcastReceiver(){

@Override

public void onReceive(Context arg0, Intent arg1) {

switch (getResultCode())

{

case Activity.RESULT_OK:

Toast.makeText(getBaseContext(), "SMS sent",

Toast.LENGTH_SHORT).show();

break;

case SmsManager.RESULT_ERROR_GENERIC_FAILURE:

Toast.makeText(getBaseContext(), "Generic failure",

Toast.LENGTH_SHORT).show();

break;

case SmsManager.RESULT_ERROR_NO_SERVICE:

Toast.makeText(getBaseContext(), "No service",

Toast.LENGTH_SHORT).show();

break;

case SmsManager.RESULT_ERROR_NULL_PDU:

Toast.makeText(getBaseContext(), "Null PDU",

Toast.LENGTH_SHORT).show();

break;

case SmsManager.RESULT_ERROR_RADIO_OFF:

Toast.makeText(getBaseContext(), "Radio off",

Toast.LENGTH_SHORT).show();

break;

}

}

},new IntentFilter(SENT));

//---when the SMS has been delivered---

registerReceiver(new BroadcastReceiver(){

@Override

public void onReceive(Context arg0, Intent arg1) {

switch (getResultCode())

{

case Activity.RESULT_OK:

Toast.makeText(getBaseContext(), "SMS delivered",

Toast.LENGTH_SHORT).show();

break;

case Activity.RESULT_CANCELED:

Toast.makeText(getBaseContext(), "SMS not delivered",

Toast.LENGTH_SHORT).show();

break;

}

}

}, new IntentFilter(DELIVERED));

SmsManager sms = SmsManager.getDefault();

sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);

}

}

SmsReceiver:

public class SmsReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

//---get the SMS message passed in---

Bundle bundle = intent.getExtras();

SmsMessage[] msgs = null;

String str = "";

if (bundle != null)

{

//---retrieve the SMS message received---

Object[] pdus = (Object[]) bundle.get("pdus");

msgs = new SmsMessage[pdus.length];

for (int i=0; i

{

msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

str += "SMS from " + msgs[i].getOriginatingAddress();

str += " :";

str += msgs[i].getMessageBody().toString();

str += "\n";

}

//---display the new SMS message---

Toast.makeText(context, str, Toast.LENGTH_SHORT).show();

}

}

}

并需要在清单中设置权限

READ_SMS,RECIEVE_SMS.

这是你如何向单个用户发送消息..

这就是你如何向多个用户发送消息.

…………………………………….

假设您需要向多个用户发送消息,您可以用逗号分隔编号

例如. 5558,5554.

这就是你如何分隔两个用逗号分隔的数字

上面代码中使用的String tokenizer类

您可以在调用SendSms功能的地方应用此逻辑,并每次都传递适当的电话号码

它对我来说很好..我可以尝试一下..

这是你的问题的答案吗?

谢谢,

拉克什

标签:android,sms

来源: https://codeday.me/bug/20190526/1158178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值