嗨,我有一个数字列表。
ArrayList<String> numbers;
我想使用Intent一起向所有这些号码发送消息。 我这样做是通过电子邮件向多人发送电子邮件,如何处理邮件?
public static void send(Context ctx, String[] addy, String subject,
String body,File attachment) {
try {
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setType("vnd.android-dir/mms-sms");
sendIntent.putExtra(android.content.Intent.EXTRA_PHONE_NUMBER,
addy);
sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
//sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(attachment));
ctx.startActivity(Intent.createChooser(sendIntent,
"Send via which Application?"));
} catch (Exception e) {
Toast.makeText(ctx, "No activity was found to handle this action",
Toast.LENGTH_SHORT).show();
}
}
这是打开消息应用程序,但存储在addy中的数字未列在发送到列
的消息中答案 0 :(得分:1)
我通过电子邮件发送此邮件,例如向多人发送电子邮件
假设您通过Intent
操作使用了第三方应用程序,这是否有效取决于第三方应用程序的作者。您无法知道数百个Android支持的电子邮件应用程序是否支持指定多个地址,除非您对它们进行全部测试。
如何处理留言?
你一次发送一个。
您的代码非常糟糕,使用未记录的MIME类型,但不一定会在所有设备上使用,但EXTRA_PHONE_NUMBER
应该是String
,而不是String[]
。
ACTION_SEND
或带有ACTION_SENDTO
地址的smsto:
同样只能保证支持一个号码,并且会给您带来与以这种方式发送电子邮件相同的问题。
SmsManager
有直接发送短信的方法;他们一次也只支持一个电话号码。
答案 1 :(得分:0)
供Java开发人员使用
public static void send(Context ctx, String[] address, String subject,
String body, File attachment) {
List<String> mylist = Arrays.asList(address);
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
StringJoiner sj = new StringJoiner(";", "smsto:", "");
mylist.forEach(sj::add);
sendIntent.setData(Uri.parse(sj.toString()));
sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
if(sendIntent.resolveActivity(ctx.getPackageManager()) != null) {
ctx.startActivity(sendIntent);
}
}
对于那些使用kotlin的人,请使用
fun send(ctx: Context, address: Array<String>, subject: String, body: String, attachment: File) {
val sendIntent = Intent(Intent.ACTION_VIEW)
val data = address.toList().joinToString(";", "smsto:")
sendIntent.data = Uri.parse(data)
sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject)
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, body)
if(sendIntent.resolveActivity(ctx.packageManager) != null) {
ctx.startActivity(sendIntent)
}
}