[Samsung Galaxy Nexus] kamilp:
A little background: Recently I bought the Galaxy Nexus. It is my second Android phone (previously I owned HTC Desire). This is also the first time I'm using a clean Android ROM. This seems to be the source of my problem. On every phone I've ever owned (feature, Windows Mobile, Symbian, Android Froyo w/Sense, Android Gingerbread w/Sense, MIUI) whenever I wanted to send an MMS or when I received an MMS (and had data disabled -- this is the important part) -- my phone would automatically enable data connection, send/receive the MMS, and disable data. That's how I always imagined things should work.

Unfortunately, that's not so with my current Jellybean ROM. I've tried two to the moment -- bigxie's and CNA. Both require me to manually enable data connection to send/receive MMS (my APNs are just fine, have two separate, one for MMS, one for Internet -- everything works once I enabled data).

I know this subject has been touched in many threads already. I've read hundreds and hundreds of topics, posts and sites about it, and it doesn't seem like anybody has found a solution to this. It's even been submitted as bugs to both Android and Cyanogenmod bugtrackers. Quite some time ago.

The only ROM I've found that does what I want, is MIUI. It even has a setting (lacking in the other ROMs I've tried) that seems to control this behavior:

I've even tried to compare logcats of stock JB with MIUI while sending MMS. Here's what stock does:

08-21 14:49:30.835: D/ConnectivityService(306): startUsingNetworkFeature reconnecting to 0: enableMMS
08-21 14:49:30.843: D/ConnectivityService(306): ConnectivityChange for mobile_mms: DISCONNECTED/FAILED
08-21 14:49:30.843: E/ConnectivityService(306): Attempt to connect to mobile_mms failed (dataEnabled).

and here's what MIUI does:

08-20 16:21:57.494: D/ConnectivityService(302): startUsingNetworkFeature reconnecting to 0: enableMMS
[COLOR="Red"]08-20 16:21:57.502: V/Mms(1112): [134] TransactionService.java(420): connectAndProcessNextTransaction: result=1[/COLOR]
08-20 16:21:57.502: W/Mms/cache(1112): RecipientId 2 not in cache!
08-20 16:21:57.502: D/Mms(1112): [1] RecipientIdCache.java(71): [RecipientIdCache] fill: begin
08-20 16:21:57.525: D/Mms(1112): [1] ComposeMessageRouterActivity.java(54): routing: threadId=2, messageCount=1, recipientCount=1
08-20 16:21:57.525: I/ActivityManager(302): START {flg=0x4010000 cmp=com.android.mms/.ui.SingleRecipientConversationActivity (has extras) u=0} from pid 1112
08-20 16:21:57.674: V/SmsProvider(475): Start query content://sms/conversations/2 with selection type=3 and args null
08-20 16:21:57.674: V/SmsProvider(475): Query content://sms/conversations/2 with selection (type=3) AND (deleted = 0) and args null returns 0 results
08-20 16:21:57.682: V/MmsProvider(475): Start query content://mms/drafts with selection thread_id = 2 and args null
08-20 16:21:57.690: V/MmsProvider(475): Query content://mms/drafts with selection (thread_id = 2) AND (deleted = 0) and args null returns 0 results
[I]( removed some unrelated entries here )[/I]
08-20 16:21:59.111: V/Mms(1112): [1] MmsSystemEventReceiver.java(130): Intent received: Intent { act=android.intent.action.SERVICE_STATE flg=0x10 (has extras) }
08-20 16:21:59.111: V/Mms(1112): [1] MmsSystemEventReceiver.java(139): ACTION_SERVICE_STATE_CHANGED: 0
08-20 16:22:00.416: D/ConnectivityService(302): ConnectivityChange for mobile_mms: CONNECTED/CONNECTED
08-20 16:22:00.416: E/MobileDataStateTracker(302): mms: unknown network type: 15
08-20 16:22:00.424: E/ConnectivityService(302): exception setting dns servers: java.lang.IllegalArgumentException: command '20 resolver setifdns rmnet0' failed with '500 20 Wrong number of arguments to resolver setifdns'
08-20 16:22:00.447: E/ConnectivityService(302): Exception trying to remove a route: java.lang.IllegalStateException: command '23 interface route remove rmnet0 default 0.0.0.0 0 10.104.63.1' failed with '400 23 Failed to remove route from default table (No such process)'
08-20 16:22:03.471: D/Tethering(302): MasterInitialState.processMessage what=3
[COLOR="red"]08-20 16:22:03.479: D/Mms(1112): [1] TransactionService.java(146): MMS connectivity info: NetworkInfo: type: mobile_mms[HSPA+], state: CONNECTED/CONNECTED, reason: dataEnabled, extra: mms, roaming: false, failover: false, isAvailable: true[/COLOR]
08-20 16:22:03.479: V/Mms(1112): [1] TransactionService.java(183): Posting transaction start

I won't pretend I understand what actually happens here, but I can't help but notice there is a process (TransactionService.java) in MIUI that doesn't exist in a clean JB, that seems to be handling the data auto connection when needed by MMS.

In essence, I could simply switch to MIUI and be happy, but the thing is I don't like MIUI. I prefer clean Jellybean, but the fact it can't autoconnect on sending/receiving MMS drives me nuts (i've come up with a semi-working Tasker based workaround for receiving MMSes at least, but it's not 100% foolproof).

And yeah, I realize lots of people have unlimited data plans and don't really care that much about their battery life, so they simply keep data always enabled. But I use my phone differently, and a smart OS should rather help me with that, not get in my way and force me to do manually things that were automated on decade old phones.

So the bottom line is: is there any, ANY clean Jellybean ROM for Galaxy Nexus that features the MIUI-like "Always receive MMS even when daya is disabled"? I expect the answer will be "no". So the second question is: why not? Looks like quite a few people would welcome this feature. Do ROM devs simply ignore this issue (or don't even consider it an issue), or they're unable to replicate what MIUI devs did?

What do you guys think?