发送彩信编程
问题描述:
我想以编程方式发送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);
问题是,它引导到撰写邮件页面,需要手动发送短信,我不想这样,没有任何它应该发送的通知我该如何做?
有人请分享我的答案
答
我终于找到了一个能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);
你可以让他们像(在Set APN programmatically on Android发现 - 通过vincent091 answear):
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));
答
通过这种方式,您可以直接彩信,通过给手机号码和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);
答
MMS是Android中一个基于HTTP请求。 您必须拥有移动数据才能发送彩信。 Android没有公开API发送MMS,因为它们具有SMS的API。 如果你想要你的应用程序发送彩信,你将不得不写所有东西。 请参阅AOSP代码。 https://github.com/android/platform_packages_apps_mms 或者您可以简单地构建Intent,然后启动本地消息传递应用程序。
我得到这个 java.lang.IllegalArgumentException异常:空邮件URI。 你能帮忙吗? – user3530687 2017-02-24 05:16:45