【发布时间】:2012-06-20 19:03:26
【问题描述】:
我有一个提醒应用程序,它会发送一条短信通知用户他们的提醒时间已经过去。这很好用。但是,我一直在测试当手机处于睡眠状态并错过提醒时会发生什么。
我正在使用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 事件引起的。无论如何,它并没有真正让我更接近解决方案 - 我想知道当什么都没有发生时出了什么问题!
如果没有发送警报短信,我可以重新发送或使用其他通知方式,例如电子邮件等。
【问题讨论】: