button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SmsManager smsManager = SmsManager.getDefault();
for (int i = 0; i <= telefones1.size(); ++i) {
int b = i - 1;
smsManager.sendTextMessage(telefones1.get(b), null, text1.getText().toString(), null, null);
}
}
});
Nao estou conseguindo pegar o valor da ArrayList telefones1se e coloco 0 no lugar da variavel b funciona,mas se deixo a variavel b fecha o app
O seu erro é que está tentando pegar o objeto da posição -1, pois 0 - 1 = -1. Desta forma o erro ocorre porque não encontra essa posição da lista.
Mais uma correção, você deve percorrer da linha 0 ate o tamanho da lista e não igual, se não ele tentará pegar um tamanho inexistente.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SmsManager smsManager = SmsManager.getDefault();
for (int i = 0; i < telefones1.size(); ++i) {
smsManager.sendTextMessage(telefones1.get(i), null, text1.getText().toString(), null, null);
}
}
});
Uma boa prática para esse tipo de serviço seria criar um AsyncTask e desabilitar o botão para evitar possíveis spans de clique.
Bom dia Anderson, muito obrigado deu certo o app nao esta mais fechando mais, porem nao esta enviando os sms. Pode me ajudar nisso? Eu tenho outra actitivity que tem o mesmo codigo e envia sms normalmente.
Geralmente quando envia SMS via celular, vai e volta operadora bloqueia o envio. Existem algumas empresas conheço a www.smspeople.com.br que fazem integração de envio, resposta com número curto. Tem os manuais inclusive em java, php, etc.