I've recently purchased a Galaxy S3 mobile phone, to replace my aging Nokia handset. On playing about with MMS messages I discovered that my phone couldn't actually download any, which I found odd - I then realised with a bit of Googling that this was because data was disabled on the phone. I enabled it to test, and as soon as they saw an internet connection my email application & Android's service settings jumped onto the 3G and started slurping away - I quickly turned this back off.
Now, this is a problem, because I don't have unlimited data - left to their own devices, these 2 would wipe out my phone credit within a week: my carrier charges £1 for 25MB of access, which is reset every day at midnight.
The solution as it turns out, is to take the single APN setting that Android creates and split it into 3, one for MMS, one for the internet settings, and a completely fake nonsense one that will be used as a buffer for your data-hungry applications. First, turn off your wifi on the phone so it doesn't confuse things, then bring up the APN settings screen. This can be found in your Apps, under:
Settings --> Wireless & Networks --> More Settings --> Mobile Networks --> Access Point Names
Remember this path - you're going to need to use it from now on whenever you want to turn 3G internet access on and off. Incidentally, while we're here, untick Use Packet Data under the Mobile Networks step - we'll put it back on at the end of all this.
Anyway, you should see a screen that'll look something like this image (courtesy of http://www.boards.ie/vbulletin/showthread.php?p=79701753 , which helped me realise the solution to this):
Note how one of these has a radio button by it, and one of them doesn't. This is apparently due to some quirk in Android which says you can have multiple APNs with data connections and choose which is used, but one set for MMS usage can't be used for non-MMS/WAP data access. As such, it doesn't have the selection box, so it is essentially always enabled.
OK, so what are we doing here? If you've got the same setup I had, then your phone provider's default APN setting has ever-so-unhelpfully put both the data & MMS into the same APN settings. You're going to need to split them apart. If this is the case, like it was for me, what you need to do is make a second APN just for your internet access - copy the settings from the first APN, until you have 2 identical ones. Now, select the first one, and change the settings accordingly:
For the MMS APN
Name: Set to "MMS" (without quotes)
APN Type: Remove everything except "mms" (without quotes)
For the Internet APN
Name: Set to "Internet" (without quotes)
MMSC: Remove setting, leave blank
MMS Proxy: Remove setting, leave blank
MMS Port: Remove setting, leave blank
APN Type: Remove only the "mms" part of the field, leave everything else - in my case, this was "default,supl" (again, no quotes).
The actual specifics of the rest of the fields will differ depending on your provider - check their help pages for what these should be.
OK, so at this point you should have something like the above screenshot - one with a circle in (that'll be selected) for Internet, and one that has no selectable circle for your MMS. We have our data set up, we now need the ability to turn it off and leave MMS usable. Create a new APN, and set the following values:
"Internet off" APN (all fields below are entered without quotes)
Name: "Internet Off"
APN: "example.com" (as per internet standards, this domain doesn't exist, and is therefore safe to use)
MCC, MNC: These two fields will likely be prefilled by your phone, depending on your country of residence and/or carrier - leave these as what your phone sets them as.
APN type: "default, supl" (basically the exact same string as is set in your Internet APN)
Save the APN and you should now have 3 APN values - Internet Off, Internet, and MMS; with the first 2 having a radio button by them. Set the Internet Off APN to be the enabled one, then hit the back button - this will bring you back to the screen with the Use Packet Data option on, which you can now enable, then go back up to the Android home screen.
Congrats, we're now done! You should be able to send and receive MMS messages at this point, but you will not be able to get email, use your browser, or do anything else data related. When you do want to do these things over 3G (and can keep an eye on exactly how long you're doing it), go back to the APN menu via Settings --> Wireless & Networks --> More Settings --> Mobile Networks --> Access Point Names , and set the radio button to Internet - after a few seconds, you should see the 3G data indicator come to life at the top of the screen, at which point data access will work. Remember to turn it back off again when you're finished, lest you incur a huge amount of charges!
One potential note - the boards.ie post also mentions that not every phone provider bothers to auth the Internet details, in which case the dummy APN will not work as a block - if you have wifi turned off and can still get online through your phone's browser with the dummy APN selected, I'm afraid you're out of luck.