发送彩信编程(Send MMS programmatically)

2019-09-02 19:44发布

我想以编程方式发送MMS我用下面的代码为它

    Intent sendIntent1 = new Intent(Intent.ACTION_SEND); 
    try {

        sendIntent1.setType("text/x-vcard");
        sendIntent1.putExtra("address","0475223091");
        sendIntent1.putExtra("sms_body","hello..");
        sendIntent1.putExtra(Intent.EXTRA_STREAM,
                Uri.parse(vcfFile.toURL().toString()));
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    startActivity(sendIntent1);

问题是,它引导到撰写邮件页面,需要手动发送短信,我不想因此不应该送我怎么能做到这一点的任何通知?

有人请分享我的答案

Answer 1:

我终于发现,工程100%的解决方案。 请参阅github上项目https://github.com/klinker41/android-smsmms 。 (任何人谁发现它有用请捐出来创作http://forum.xda-developers.com/showthread.php?t=2222703 )。

请注意,是强制性的设置仅

Settings sendSettings = new Settings();

sendSettings.setMmsc(mmsc);
sendSettings.setProxy(proxy);
sendSettings.setPort(port);

你可以让他们像(在发现设置APN程序在Android上 - answear通过vincent091):

Cursor cursor = null;
if (Utils.hasICS()){
    cursor =SqliteWrapper.query(activity, activity.getContentResolver(), 
            Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null);
} else {
    cursor = activity.getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"),
        null, null, null, null);
}

cursor.moveToLast();
String type = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.TYPE));
String mmsc = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSC));
String proxy = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSPROXY));
String port = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSPORT));


Answer 2:

MMS是Android中一个基于HTTP请求。 你必须有移动数据发送彩信。 有没有搭载Android暴露发送MMS,因为他们有短信的API的API。 如果你希望你的应用程序发送彩信你将不得不写的一切。 请参考AOSP代码。 https://github.com/android/platform_packages_apps_mms或者你可以简单地建立意向,然后启动本地消息传递应用程序。



Answer 3:

通过这种方式,您可以直接彩信,通过给手机号码和Subject.And附加图像。

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);


文章来源: Send MMS programmatically
标签: android mms