Now that 3rd party apps cannot read APN information, it seems that there’s no way to send MMS programmatically (unless you ask the user to manually enter APN info -AND- you have a working APN defined in the phone’s settings), so the only option seems to be sending the MMS using the stock MMS app.
I’ve saved an MMS in the native MMS content provider (content://mms/outbox) and it successfully appears in the native app but is not being sent until I manually sent another MMS.
I’m looking for a broadcast, or any action that would trigger sending all messages in the outbox of the native MMS app.
Looking at the sources of the stock mms.apk, there doesn’t seems to be a
broadcastReceiver to serve this purpose. You can check the sources here.
Also, these apps have or had actually problems with sending MMS on Jelly Bean. In Textra SMS app, I can say they use their own APN database, as we can change the APN settings inside the app in case MMS are not working.
You could try the CONTENT_CHANGED_ACTION from the internal MMS API. In the extra you should specify the MMS Uri to notify that the content://mms/outbox is changed.