我使用以下代码来调用MMS意图:
{
Intent mmsIntent = new Intent(Intent.ACTION_SEND);
mmsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mmsIntent.putExtra("address", temp);
mmsIntent.putExtra("sms_body", msgstr);
mmsIntent.putExtra(Intent.EXTRA_STREAM, mediaUri);
}
这里'temp'是包含多个数字的字符串,用';'区分。当我们将此代码仅用于单个数字时,它工作正常,但是当我添加多个数字时,它不会附加到消息传递应用程序。我用','尝试了相同的东西来分隔电话号码,但它也不起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
Intent mmsIntent= new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:9858254511;9858526521"));
mmsIntent.putExtra("sms_body", msgstr);
mmsIntent.putExtra(Intent.EXTRA_STREAM, mediaUri);
startActivity(smsIntent);
将一个以分号分隔的电话号码列表添加到“smsto:”作为Intent构造函数中的URI。另请参阅此LINK
答案 1 :(得分:0)
protected void sendMsg(Context context, SmsMessage smsMessage) {
SmsManager smsMgr = SmsManager.getDefault();
ArrayList<string> smsMessageText = smsMgr.divideMessage(smsMessage.getMsgBody());
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_DELIVERED"), 0);
int AddresseesPerMessage = 10;
StringBuilder builder = new StringBuilder();
String delim = "";
for (ContactItem c:smsMessage.getAddresseeList()) {
// For every phone number in our list
builder.append(delim).append(c.getPhoneNumber().toString());
delim=";";
if (((smsMessage.getAddresseeList().indexOf(c)+1) % AddresseesPerMessage) == 0 || smsMessage.getAddresseeList().indexOf(c)+1 == smsMessage.getAddresseeList().size()) {
// using +1 because index 0 mod 9 == 0
for(String text : smsMessageText){
// Send 160 bytes of the total message until all parts are sent
smsMgr.sendTextMessage(builder.toString(), null, text, sentPI, deliveredPI);
}
builder.setLength(0);
delim="";
}
}
}
使用此代码...我希望它对您有用。