Tenho uma aplicação que utiliza o sms nativo.
Criei uma activity para o usuário inserir o telefone e a mensagem.
Porém ao clicar em enviar, ele não encerra a tela nem informa se foi enviado ou não.
Podem me dar alguma dica para o problema?
Coloca o codigo ae para a gente ver o que está acontecendo!
private EditText textoPhone;
private EditText textoSMS;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enviomensagem);
textoPhone = (EditText) findViewById(R.id.textTelefone);
textoSMS = (EditText)findViewById(R.id.textMensagem);
}
public void BotaoEnviar (View v) {
String telefone = textoPhone.getText().toString();
String sms = textoSMS.getText().toString();
try {
SmsManager smsmanager = SmsManager.getDefault();
smsmanager.sendTextMessage(telefone, null, sms, null, null);
} catch (Exception e) {
}
}
public void VoltarSMS (View v) {
Intent VoltarSMS = new Intent(Envio.this, MenuMensagem.class);
startActivity(VoltarSMS);
finish();
}
Dá uma lida aqui https://developer.android.com/reference/android/telephony/gsm/SmsManager.html
void sendTextMessage (String destinationAddress,
String scAddress,
String text,
PendingIntent sentIntent,
PendingIntent deliveryIntent);
parece que os 2 ultimos parametros do metodo retornam o resultado do envio.
já usei o metodo, mas sem esses parametros e quando eu enviava uma mensagem pra qualquer numero funcionava sem erro.
Agora sim entendi como funciona o SMSManager.
Vou implementar.
Muito obrigado pela ajuda.
po vc pega as exceptions e simplesmente esconde.
ai nunca vai descobrir o que aconteceu.
Verdade, ainda tem essa: o catch não imprime mensagem de erro
coloca algo parecido com isso dentro do catch
Toast.makeText(getBaseContext(), e.getMessage().toString(), Toast.LENGTH_SHORT).show();
Isso vai exibir a msg do erro pra vc.
Mas de qq forma um tratamento usando os parametros do método pode complementar o teste.
Geralmente quando envia SMS via celular(chip), vai e volta operadora bloqueia o envio. Existem algumas empresas que enviam direto operadora, 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.;;;