robgibbons parent
May I ask why you're encoding as Base64? Does this not increase the payload size significantly?
Probably because of the restricted character set available in SMS messages?
Yes, Base64 encoding will expand a payload by 33%. However, SMS limits the character set you can send easily, with the most common mode of transit being the 7 bit SMS character set. With the SMS character set having an escape character that can get in the way of doing a direct encoding, I imagine they went with Base64 because there were already libraries for it, minimizing the work they had to do at this stage.
Base64 adds +30% but I guess you can’t send binary data in an SMS, you must encode it in some way.
You can send anything in the GSM 7-bit alphabet, which has 128 characters rather than Base64's 64-entry index table.
They could gain a lot of efficiency by using a 127-entry index table (or 128 if the ESC character doesn't need to be avoided - I don't know how the Android SMS APIs handle it) rather than a 64-entry one.