smsManager.sendMultipartTextMessage(
mDests[i], mServiceCenter, messages,
sentIntents, deliveryIntents);
Run Code Online (Sandbox Code Playgroud)
在我的SmsReceiver(sentIntents)有时我会收到getResultCode() = 0.
根据文档:http://developer.android.com/reference/android/telephony/SmsManager.html
这意味着STATUS_ON_ICC_FREE.但我无法理解它是什么.返回时 - 不发送短信.
这意味着什么以及如何解决它?是什么原因STATUS_ON_ICC_FREE?
您只是将结果代码与错误的常量进行比较。Javadoc 清楚地说明了广播中SmsManager.sendMultipartTextMessage返回的可能值:getResultCode()sentIntents
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
Run Code Online (Sandbox Code Playgroud)
在我看来,STATUS_ON_ICC_xxx常量被错误地添加到公共 API 中,因为它们仅由 SmsManager 类的隐藏方法使用:等copyMessageToIcc。deleteMessageFromIcc
更新
但是,这并不能解释为什么您会收到0来自getResultCode(). 因为这两个常量都不等于 0(Activity.RESULT_CANCEL = 0但 javadoc 中没有提及SmsManager)。通过 Android Sources 进行快速搜索也没有给出任何0可能来自的线索。
一种可能性可能是某些其他应用程序捕获sentIntent广播并setResultCode显式调用。然而,到目前为止我确信在 Android 中不可能阻止在应用程序级别发送短信。
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |