Tôi có một ứng dụng nhắc nhở sẽ gửi SMS để thông báo cho người dùng rằng thời gian lời nhắc của họ đã qua. Điều này hoạt động tốt. Tuy nhiên, tôi đã thử nghiệm những gì sẽ xảy ra khi điện thoại đã ngủ và bỏ lỡ một lời nhắc nhở.Android - xác định lý do gửi SMS không thành công
Tôi đang sử dụng AlarmManager
để thiết lập báo thức tương ứng với thời gian nhắc nhở. Đăng nhập của tôi cho thấy báo thức đã tắt khi điện thoại khởi động lại và một nỗ lực để gửi một tin nhắn SMS xảy ra, nhưng tin nhắn SMS không bao giờ nhận được.
Vì vậy, câu hỏi đặt ra là có cách nào để gỡ lỗi vì sao SMS không được gửi không?
mã hiện tại của tôi thiết lập một ContentObserver khi một sự kiện báo động xảy ra:
private void registerToListenForSentSMS()
{
MessageSentListener smsObeserver = new MessageSentListener(new Handler());
ContentResolver contentResolver = TheEveryOtherAlarmAppApplication.getAppContext().getContentResolver();
contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsObeserver);
}
MessageSentListener được thông báo rằng một số sự kiện SMS đã xảy ra:
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);
}
}
Nhưng điều này có thể được gây ra bởi sự kiện SMS không liên quan đến ứng dụng của tôi. Dù sao, nó không thực sự làm cho tôi gần gũi hơn với một giải pháp - Tôi muốn biết những gì đã đi sai khi không có gì xảy ra!
Trong trường hợp một tin nhắn SMS báo động không được gửi, tôi sẽ có thể hoặc là gửi lại hoặc sử dụng một số phương pháp thông báo khác như email, vv
Cảm ơn - Tôi sẽ cố gắng mà ra. Tôi giả sử tôi sẽ phải hủy đăng ký người nhận trong các phương thức onReceive(). – barry
Điều đó dường như hoạt động. Một vài câu hỏi mặc dù - 1 - nó xuất hiện tôi không cần phải unregister người nhận (họ không đăng nhập bất cứ điều gì khi tin nhắn SMS được gửi tiếp nhận được vv). Tại sao điều này? 2 - làm sao Android biết được SMS đã được gửi? Có một số chức năng SMS cấp thấp ở nơi làm việc ở đó không? – barry
Tôi có thể hủy đăng ký chương trình phát sóng ở đâu –