SMS with attachments

After finishing the Android Developers Challenge I would like to show here one of the submitted projects. As seems to me it is some new stuff and I have not seen similar among the described submissions.

The idea is very simple actually. We can easily send e-mail with attachments. Everybody did that. But why do not send SMS with attachment?

So that is what I did. It is a SMS client lets you send SMS with attachments. How does it work? SMS client itself is trivial: text field for your text and combo box for selecting one of the existing contacts (in order to get phone number to whom SMS is addressed). And what is new here – a "magic" button: Add file. Application on the Adnroid platform can access to another files (depends on their attributes – public or not). It is a big plus comparing with J2ME for example. So in this SMS client you can choose any file with the appropriate global read permissions (in other words – any file this SMS client application allowed access to) and attach it to your text. So it will be "transferred" via SMS. Implementation for this transfer uses the following approach:

1) User selects file in SMS client application. It could be any public available file on your phone.
2) Selected file will be automatically uploaded to some external web server
3) URL for the uploaded file will be added to the prepared SMS. It is the key point. URL is a text. So we can simply add additional text to your SMS.

So at he end of the day transferred SMS may contains some links (just URL's like this And it is still a normal text message. As soon as the target party will receive such a message, he/she can open the included URL (URL's) right from his/her SMS client. SMS clients on the mobile phones nowadays let users open URL's right from the text (of course, the target phone must be connected to the Internet, support appropriate data plan etc.).

What are the advantages for this approach:

1. It will work not only in Android to Android communications, but in Android to any phone too. It is a clear way to use Android’s advantages in the existing mobile world.

2. You do not need to get into any special application /social network etc. in order to share your data with mates. Now you can use plain old SMS for that. Your Android phone is enough. And their “old phones” are enough too.

3. You do not need MMS anymore for sending multimedia content from your phone. Use SMS. And your correspondents do not need MMS too. They will be able to get your data via standard SMS

4. This approach does not introduce any new internal format for SMS. Just a plain text. So you not need the special clients for dealing with attachments etc.

5. It is the traffic generation stuff for the mobile operators. Reading attachment means internet access. So we can easily add data traffic to the widely used text messages.

Besides the attachment this SMS client lets do one simple but useful thing. It can automatically add (concatenate) to your message the current coordinates. Yes, just add the pair latitude:longitude. Why it could be useful? If you are sending SMS to some service (information request, search, dating etc.) this service may simply extract data from the incoming SMS and proceed your request more precisely. And because geo coding will be added at the end of the message it does not break the exiting parsing (processing) for the service. Just an optional checking: if such a pattern number : number is present than use it. Otherwise – it is old non-Android SMS. And for the human reading - e.g. imagine some sort of emergency (911) service the plain address from Google geo-coding could be added too.

You can download the prototype application here.

How to test it? This application sends outgoing SMS. So there are no map, camera or video. Just Android API calls for sending SMS at the end of the day. On the simulator now you can only check the application log. It will show the text prepared for the sending (of course all the calls for the sending are in, so on the real platform it will really send). The attachments currently will be saved on my server but it could be some like Amazon S3 for example in the future.

Dmitry Namiot

Java projects: