SMS Manager

4 respostas
A
button.setOnClickListener(new View.OnClickListener() {

<a class="mention" href="/u/override">@Override</a>

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

4 Respostas

A

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.

A

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.

A

Alguem pode ajudar?

R

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.

Criado 20 de novembro de 2019
Ultima resposta 28 de ago. de 2020
Respostas 4
Participantes 3