我有一个提醒应用程序,它会发送一条短信通知用户他们的提醒时间已经过去。这很好用。但是,我一直在测试当手机睡着并错过提醒时会发生什么。
我AlarmManager
用来设置警报以对应提醒时间。我的日志显示,当手机重新启动并尝试发送 SMS 时警报响起,但从未收到 SMS。
所以问题是,有没有办法调试为什么不发送短信?
我当前的代码在发生警报事件时设置了 ContentObserver:
private void registerToListenForSentSMS()
{
MessageSentListener smsObeserver = new MessageSentListener(new Handler());
ContentResolver contentResolver = TheEveryOtherAlarmAppApplication.getAppContext().getContentResolver();
contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsObeserver);
}
MessageSentListener 收到通知发生了一些SMS 事件:
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);
}
}
但这可能是由与我的应用程序无关的 SMS 事件引起的。无论如何,它并没有真正让我更接近解决方案 - 我想知道什么都没发生时出了什么问题!
如果没有发送警报短信,我可以重新发送或使用其他一些通知方法,例如电子邮件等。