后台发彩信不显示任何界面

Send mms in background service without showing any interface

下面的代码也默认为我​​导航 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);

我需要的是在不显示任何界面的情况下在后台发送彩信。我可以使用

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

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

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

要在没有用户交互的情况下发送彩信,您可以使用 smsManager.sendMultimediaMessage() 发送彩信,但此方法是自 API 版本 21 以来引入的。您可以参考 here 上的演示以查看如何使用 sendMultimediaMessage() 发送彩信。

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