Prezados, boa tarde!
Me encontrei em uma situação de um app que, ao clicar em um botão, será enviado para o cel uma mensagem SMS com um código de acesso no corpo da mensagem. criei o código abaixo:
public class SmsReceiver extends BroadcastReceiver {
private static SmsListener mListener;
private static String telTeste = String.valueOf(15095);
SmsMessage sms;
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().getSerializable("pdus");
String format = (String) intent.getExtras().getSerializable("format");
byte[] pdu = (byte[]) pdus[0];
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
sms = SmsMessage.createFromPdu(pdu, format);
} else {
sms = SmsMessage.createFromPdu(pdu);
}
String sender = sms.getDisplayOriginatingAddress();
String message = sms.getMessageBody();
if (telTeste.equals(sender)) {
MediaPlayer mp = MediaPlayer.create(context, R.raw.musica_empresa);
mp.start();
}
if (message.contains("Insira o codigo do livro")) {
message = message.replaceAll("[^0-9]", "");
}
}
Agora, na Intent, precisaria recuperar o valor de "message" para setar em uma Intent, conforme essa regra:
@Override
public void afterTextChanged(Editable s) {
//recuperar a mensagem, colocar no TextView para fazer as comparações abaixo
if (s.length() >= minimoCaracteres) {
etCodigoAtivacao.setValidado();
} else {
etCodigoAtivacao.limparValidacao();
}
habilitarBotaoContinuar();
}
A duvida é: como posso recuperar o valor da variável mensagem do onReceive, para tratá-la nessa classe da minha Activity?
Obrigado!