Отправка sms нескольким людям в android

Я хочу знать, есть ли в любом случае, что я могу отправить sms нескольким людям с помощью SmsManager. Я знаю, что я могу запустить цикл через контакты и отправить sms отдельно, но я решил, что может быть способ сделать это.

Код, который я использую, приведен ниже:

SmsManager.getDefault().sendTextMessage("PHONE_NOS", null,msg.getText().toString(), sentPI, deliveredPI); 

PS: Я пробовал использовать «;» Как разделитель. Но единственное, что происходит, это то, что он отправляет смс только первому человеку из списка.

В интересах людей, которые видят это поздно, невозможно отправить SMS нескольким людям. Как отметил Билл Моут, если бы это было возможно, был бы API, который бы принял аргумент «Список чисел». Таким образом, единственное возможное решение – иметь итератор для чисел и отправлять их по одному.

Сеть net-net здесь не может быть выполнена без повторения цикла и отправки 1 сообщения одному адресату.

Я провел половину субботы, пытаясь сделать это. Я не мог работать с ";", ",", "" или "\ n". Я должен был сначала судить о жестком кодировании двух адресатов, разделенных всеми разделителями, но я действительно узнал ценный урок об Android SDK: если бы они хотели, чтобы вы отправляли более чем одному адресату одновременно, то они приняли бы ArrayList или Массив строк, а не единственная строка;)

 protected void sendMsg(Context context, SmsMessage smsMessage) { SmsManager smsMgr = SmsManager.getDefault(); ArrayList<string> smsMessageText = smsMgr.divideMessage(smsMessage.getMsgBody()); PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_SENT"), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_DELIVERED"), 0); int AddresseesPerMessage = 10; StringBuilder builder = new StringBuilder(); String delim = ""; for (ContactItem c:smsMessage.getAddresseeList()) { // For every phone number in our list builder.append(delim).append(c.getPhoneNumber().toString()); delim=";"; if (((smsMessage.getAddresseeList().indexOf(c)+1) % AddresseesPerMessage) == 0 || smsMessage.getAddresseeList().indexOf(c)+1 == smsMessage.getAddresseeList().size()) { // using +1 because index 0 mod 9 == 0 for(String text : smsMessageText){ // Send 160 bytes of the total message until all parts are sent smsMgr.sendTextMessage(builder.toString(), null, text, sentPI, deliveredPI); } builder.setLength(0); delim=""; } } } 

Это может быть полезно для вас.

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnSendSMS = (Button) findViewById(R.id.btnSendSMS); btnSendSMS.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(android.content.Intent.ACTION_VIEW); i.putExtra("address", "5556; 5558; 5560"); // here i can send message to emulator 5556,5558,5560 // you can change in real device i.putExtra("sms_body", "Hello my friends!"); i.setType("vnd.android-dir/mms-sms"); startActivity(i); } }); } 

Добавьте эту строку в AndroidManifest.xml

 <uses-permission android:name="android.permission.SEND_SMS"/>