如何在android中发送大短信。我用过:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(contactNos[j], null,msgs[i], sentPI, deliveredPI);
此代码仅适用于160个字符的消息。我也用
ArrayList<String> msgsplit=sms.divideMessage(msgs[i]);
ArrayList<PendingIntent> listOfIntents = new ArrayList<PendingIntent>();
for (int k=0; k < msgsplit.size(); k++){
Intent sentIntent = new Intent();
PendingIntent pi = PendingIntent.getBroadcast(MultipleMsg.this, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT);
listOfIntents.add(pi);
}
// sendMessage(contactNos[j],msgs[i]);
sms.sendMultipartTextMessage(contactNos[j],null,msgsplit, listOfIntents, null);
但是它会在邮件中发送垃圾字符。 任何人都可以帮助我吗?
答案 0 :(得分:43)
尝试下面的代码可能有帮助
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
答案 1 :(得分:33)
垃圾字符?方法sendMultipartTextMessage只发送文本消息。如果要发送非文本消息,则应查看方法sendDataMessage。以下是android cts的代码摘录。它有关于如何发送长消息的示例。
SmsManager sm = SmsManager.getDefault();
ArrayList<String> parts =sm.divideMessage(LONG_TEXT);
int numParts = parts.size();
ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>();
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>();
for (int i = 0; i < numParts; i++) {
sentIntents.add(PendingIntent.getBroadcast(getContext(), 0, mSendIntent, 0));
deliveryIntents.add(PendingIntent.getBroadcast(getContext(), 0, mDeliveryIntent, 0));
}
sm.sendMultiPartTextMessage(mDestAddr,null, parts, sentIntents, deliveryIntents)
答案 2 :(得分:3)
模拟器在某些问题中发送该代码中的垃圾字符,所以在真正的手机中使用apk,并检查代码,我相信你的应用程序不会发送垃圾邮件......一切顺利。
答案 3 :(得分:0)
你应该从SMSC获得特定的短代码,用于发送字符超过160的短信。