Olá,
Abaixo meu código da classe SmsReceiver.
Quando envio um SMS para o número de um aluno, o toast com a mensagem "Chegou um SMS de Aluno..." não aparece.
Quando tiro o comentário do toast com a mensagem "Chegou um SMS de..." então aparece o número do telefone no formato "+5561...", considerando meu DDD 61.
Editei o número do telefone para esse formato, mas mesmo assim o toast desejado não aparece.
Não entendi porque o código dentro if não está sendo executado.
SmsReceiver.java:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getSerializableExtra("pdus");
byte[] pdu = (byte[]) pdus[0];
String formato = (String) intent.getSerializableExtra("format");
SmsMessage sms = SmsMessage.createFromPdu(pdu, formato);
String telefone = sms.getDisplayOriginatingAddress();
// Toast.makeText(context, "Chegou um SMS de " + telefone + " !", Toast.LENGTH_LONG).show();
AlunoDAO dao = new AlunoDAO(context);
if (dao.isAluno(telefone)) {
Toast.makeText(context, "Chegou um SMS de Aluno (" + telefone + ") !", Toast.LENGTH_SHORT).show();
MediaPlayer mp = MediaPlayer.create(context, R.raw.msg);
mp.start();
}
dao.close();
}
}
AlunoDAO.java:
public boolean isAluno(String telefone) {
String sql = "SELECT * FROM Alunos WHERE telefone = ?";
Cursor cursor = getReadableDatabase().rawQuery(sql, new String[]{telefone});
int count = cursor.getCount();
cursor.close();
return count > 1;
}