要实现在Android中编程方式发送MMS,无需将应用程序设置为默认应用程序,可以使用Android的MMS库和内容提供者。以下是一个包含代码示例的解决方法:
import android.content.ContentValues;
import android.content.Context;
import android.net.Uri;
public class MMSHelper {
public static void sendMMS(Context context, String number, String subject, String message, Uri attachmentUri) {
ContentValues values = new ContentValues();
values.put("address", number);
values.put("subject", subject);
values.put("body", message);
values.put("msg_box", 2);
if (attachmentUri != null) {
values.put("content_type", "image/jpeg");
values.put("data", attachmentUri.toString());
}
Uri uri = context.getContentResolver().insert(Uri.parse("content://mms/outbox"), values);
if (uri != null) {
values = new ContentValues();
values.put("ct", "application/vnd.wap.multipart.related");
values.put("msg_id", uri.getLastPathSegment());
values.put("part_num", 1);
values.put("_data", attachmentUri.toString());
context.getContentResolver().insert(Uri.parse("content://mms/part"), values);
}
}
}
String number = "1234567890";
String subject = "Test MMS";
String message = "This is a test MMS!";
Uri attachmentUri = Uri.parse("file:///sdcard/image.jpg");
MMSHelper.sendMMS(getApplicationContext(), number, subject, message, attachmentUri);
上述代码将发送一条包含文本消息和附件的MMS。如果不需要附件,可以将attachmentUri设置为null。
注意:由于Android的安全限制,无法直接发送MMS而不将应用程序设置为默认应用程序。用户必须在发送MMS之前选择将您的应用程序设置为默认应用程序。