How to send MMS without intent programmatically

2020-06-25 04:50发布

问题:

Uri uri = Uri.parse("file://"+Environment.getExternalStorageDirectory()+"/test.png");
    Intent i = new Intent(Intent.ACTION_SEND);
    i.putExtra("address","1234567890");
    i.putExtra("sms_body","This is the text mms");
    i.putExtra(Intent.EXTRA_STREAM,"file:/"+uri);
    i.setType("image/png");
    startActivity(i);

I want to send MMS but I don't want to use intent object like above because I am developing my own application of sms manager. So how can I send MMS?

I am referring to this link code but I don't understand it and it doesn't work.

回答1:

There is no public API to send an MMS in Android at the moment.



回答2:

MMS is a HTTP based request in Android. You have to have mobile data to send an MMS. There are no APIs exposed by Android to send an MMS, as they have APIs for SMS. If you want your application to send MMS you will have to write everything. Please refer the AOSP code. https://github.com/android/platform_packages_apps_mms OR you can simply build the Intent and then launch the native Messaging App.



回答3:

Android's SmsManager API now supports this functionality since API level 21, with the sendMultimediaMessage method:

void sendMultimediaMessage (Context context, 
                Uri contentUri, 
                String locationUrl, 
                Bundle configOverrides, 
                PendingIntent sentIntent)