Tengo una aplicación de recordatorio que enviará un SMS para notificar al usuario que ha pasado su tiempo de recordatorio. Esto funciona bien Sin embargo, he estado probando qué sucede cuando el teléfono ha estado dormido y se ha perdido un recordatorio.Android: determinar por qué el envío de SMS falló
estoy usando AlarmManager
a establecer alarmas que corresponden a los tiempos de recordatorio. Mi registro muestra que la alarma se activó cuando el teléfono se reinicia y se produce un intento de enviar un SMS, pero el SMS nunca se recibe.
Entonces, la pregunta es, ¿hay alguna forma de solucionar el problema por el que no se envía un mensaje de texto?
Mi código actual establece un ContentObserver cuando un evento de alarma:
private void registerToListenForSentSMS()
{
MessageSentListener smsObeserver = new MessageSentListener(new Handler());
ContentResolver contentResolver = TheEveryOtherAlarmAppApplication.getAppContext().getContentResolver();
contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsObeserver);
}
MessageSentListener se notificó que algún evento SMS pasó:
public class MessageSentListener extends ContentObserver
{
public MessageSentListener(Handler handler)
{
super(handler);
}
@Override
public void onChange(boolean selfChange)
{
super.onChange(selfChange);
Log.d(Constants.ALARM_APP_LOG_TAG, "Something happend");
ContentResolver contentResolver = AlarmAppApplication.getAppContext().getContentResolver();
contentResolver.unregisterContentObserver(this);
}
}
Pero esto podría ser causada por eventos SMS no relacionado con mi aplicación. De todos modos, realmente no me acerca a una solución. Me gustaría saber qué salió mal cuando no pasa nada..
En el caso de que un SMS de alarma no se envía, me gustaría ser capaz de enviar o bien utilizar algún otro método de notificación como el correo electrónico, etc.
Gracias - Voy a tratar de eso. Supongo que tendré que anular el registro de los receptores en los métodos onReceive(). – barry
Eso parece funcionar. Sin embargo, un par de preguntas - 1 - parece que no necesito anular el registro de los receptores (no registran nada cuando se envían más SMS, etc.). ¿Por qué es esto? 2 - ¿Cómo sabe Android que se ha entregado un SMS? ¿Hay alguna funcionalidad de SMS de bajo nivel funcionando allí? – barry
Donde no puedo registrar la transmisión –