Как отправлять сообщения на разные телефонные номера с помощью «;» для отдельного (java android)?

#java #android #android-studio #mobile

#java #Android #android-studio #Мобильный

Вопрос:

     private void sendSMS(){

    String phoneNo = number.getText().toString().trim();
    String SMS = message.getText().toString().trim();

    try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(phoneNo, null,SMS,null,null);
        Toast.makeText(this,"SMS est envoyé",Toast.LENGTH_SHORT).show();
    } catch (Exception e){
        e.printStackTrace();
        Toast.makeText(this,"Erreur",Toast.LENGTH_SHORT).show();

    }
}
  

Здравствуйте, у меня есть этот фрагмент кода, который успешно работает! Но я хочу, чтобы теперь отправлялось сообщение на разные номера с отдельным «;».

Например, в эмуляторе я хочу ввести в зону номеров (1254; 2058; 153348), и сообщение должно быть отправлено всем контактам, которые я ввел.

Спасибо вам за ваш ответ!

Комментарии:

1. Есть ли причина не разделять строку на «;» и просто вызывать эту функцию для каждого значения?

2. Я новичок в мобильном программировании и не понял этого решения, у вас есть пример, пожалуйста?

Ответ №1:

phoneNo.split(";") даст вам String массив с несколькими контактами. используйте for цикл для отправки нескольким пользователям / номерам

 private void sendSMS(){
    String phoneNo = number.getText().toString().trim();
    String SMS = message.getText().toString().trim();

    if(phoneNo.contains(";"){
        String[] phoneNumbers = phoneNo.split(";");
        for(String number : phoneNumbers) sendSmsTo(SMS, number);
    }
    else sendSmsTo(SMS, phoneNo);
}

private void sendSmsTo(String SMS, String phoneNo){
    try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(phoneNo, null,SMS,null,null);
        Toast.makeText(this,"SMS est envoyé",Toast.LENGTH_SHORT).show();
    } catch (Exception e){
        e.printStackTrace();
        Toast.makeText(this,"Erreur",Toast.LENGTH_SHORT).show();
    }
}