#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();
}
}