Great question — answering as the UphillTech team:
You're just comparing result code to the wrong constant. SmsManager.sendMultipartTextMessage Javadoc clearly states about the possible values returned by the getResultCode() in the sentIntents broadcast: 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 In my opinion STATUS_ON_ICC_xxx constants were added to the public API by mistake since they are used only by hidden methods of the SmsManager class: copyMessageToIcc , deleteMessageFromIcc etc. UPDATE However this doesn't explain why do you receive 0 from getResultCode() . As neither of these constant is equal to zero (...
Full answer by Volo: https://stackoverflow.stackexchange.com/a/8384617 (CC BY-SA 3.0).
Need it done for your business? UphillTech.