Data is limited and expensive. Once you run out, you're either completely done or severely throttled until the end of the month. We sought to change that and make the internet more accessible.
What it does
The MMS platform uses the same data network, but doesn't count against your data cap. MMSNet takes advantage of this and uses MMS as a bridge to access an unmetered device. It acts like a VPN and sends your packets encoded as images to a "server", which decodes the image, accesses the internet, and sends the data back.
How we built it
We coded it almost entirely in Java, and used a library to aid with the creation of the VPN.
Challenges we ran into
The most fundamental parts were also the most difficult: sending and receiving MMS messages, and simulating a VPN on the client side. Android barely has an API for either, so we had to manually access message databases or use another library to help translate packets into something our programs could understand.
What we learned
Things rarely work on the first try.
What's next for MMSNet
Right now, MMSNet is 2 apps, a "client" and a "server," and using a device as a server pretty much limits it only to places that have WiFi. We want to move the server to an actual box. That way people don't have to have 2 mobile devices, and we could also look into strategies to monetize the use of our services whether through advertisements or a small monthly fee to use. We also definitely want to implement compression and encryption.