smsManager.sendMultipartTextMessage(
mDests[i], mServiceCenter, messages,
sentIntents, deliveryIntents);
在我的 SmsReceiver (sentIntents) 中,有时我会收到 getResultCode() = 0
。
根据文档:http://developer.android.com/reference/android/telephony/SmsManager.html
这意味着 STATUS_ON_ICC_FREE
。但我不明白它是什么。
返回时 - 不发送短信。
这是什么意思,如何解决? STATUS_ON_ICC_FREE
的原因是什么?
最佳答案
您只是将结果代码与错误的常量进行比较。 SmsManager.sendMultipartTextMessage
Javadoc 清楚地说明了 sentIntents
广播中 getResultCode()
返回的可能值:
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
在我看来,STATUS_ON_ICC_xxx
常量被错误地添加到公共(public) API,因为它们仅被 SmsManager 类的隐藏方法使用:copyMessageToIcc
、deleteMessageFromIcc
等
更新
但是,这并不能解释为什么您会从 getResultCode()
收到 0
。因为这两个常量都不等于零(Activity.RESULT_CANCEL = 0
但在 SmsManager
javadoc 中没有提到它)。 Quick search通过 Android Sources 也没有提供任何线索 0
可能来自。
一种可能是某些其他应用程序捕捉到 sentIntent
广播并显式调用 setResultCode
。但是,到目前为止,我确信在 Android 中不可能阻止在应用程序级别发送 SMS。
关于android - 当我发送短信时,有时结果代码 = 0。该代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382687/