Bạn chỉ đang so sánh mã kết quả với sai số không đổi. SmsManager.sendMultipartTextMessage
Javadoc nêu rõ về giá trị có thể được trả về bởi các getResultCode()
trong sentIntents
phát sóng:
The result code will be Activity.RESULT_OK for success, or one of these errors:
RESULT_ERROR_GENERIC_FAILURE
RESULT_ERROR_RADIO_OFF
RESULT_ERROR_NULL_PDU
Theo STATUS_ON_ICC_xxx
hằng của tôi đã được thêm vào các API công cộng do nhầm lẫn vì chúng chỉ được sử dụng bằng các phương pháp ẩn của lớp SmsManager: copyMessageToIcc
, deleteMessageFromIcc
, vv
CẬP NHẬT
Tuy nhiên điều này không giải thích tại sao bạn nhận 0
từ getResultCode()
. Vì không phải của các hằng số này bằng không (Activity.RESULT_CANCEL = 0
nhưng không có đề cập đến nó trong SmsManager
javadoc). Quick search thông qua các nguồn Android cũng không đưa ra bất kỳ đầu mối nào là 0
có thể đến từ đó.
Một khả năng có thể là một số ứng dụng khác bắt được phát sóng sentIntent
và gọi setResultCode
một cách rõ ràng. Tuy nhiên tôi đã chắc chắn đến bây giờ rằng nó không thể trong Android để ngăn chặn các tin nhắn SMS được gửi ở cấp ứng dụng.
Tốt câu hỏi: \. Trang web này liệt kê một mẫu: http://hi-android.info/src/com/android/internal/telephony/gsm/SimSmsInterfaceManager.java.html để nhận giá trị trả lại đó. ICC là thẻ SIM của bạn và những gì họ làm khi họ nhận được tin nhắn đó là xóa một thứ gì đó khỏi SIM. Có lẽ thẻ SIM đã đầy chưa? (thậm chí tham chiếu đến TS 51.011 10.5.3 không thực sự trả lời bất kỳ câu hỏi nào ...) – Yuri