在后台服务中发送mms而不显示任何界面

时间:2015-07-25 06:01:54

标签: java android android-intent mms android-mms

以下代码导航我的默认 MMS 应用程序包含照片,文字和数字

Intent mmsIntent = new Intent(Intent.ACTION_SEND);
mmsIntent.putExtra("sms_body", "text");
mmsIntent.putExtra("address", "121");
mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "photo.jpeg")));
mmsIntent.setType("image/jpeg");
mmsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(mmsIntent);

我需要的是在后台发送mms而不显示任何类型的界面。我可以使用

使用SmsManager发送文本短信
SmsManagaer smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(num, null, "Help Me", null, null);

我可以使用 smsManager.sendMultimediaMessage() 发送mms(我试过这种方法但还没有成功)?如果不是那么它的用途是什么?还有其他方法在后台发送mms吗?

1 个答案:

答案 0 :(得分:1)

您正在做的是创建Implicit Intent,它将根据您发送的操作启动另一个应用程序。如果在意图过滤器中注册的操作安装了多个应用程序,它可能会显示“选择器”对话框。

要在没有用户互动的情况下发送彩信,您可以使用smsManager.sendMultimediaMessage()发送彩信,但自API版本21开始引入此方法。您可以通过here参考演示,了解如何使用{发送彩信{1}}。

要支持之前的版本,您可以集成此answer中列出的解决方案。