如何发送超过160个字符的短信?

如何在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); 

但它会在邮件中发送垃圾邮件。 任何人都可以帮我吗?

垃圾人物? 方法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) 

尝试下面的代码可能会帮助

 SmsManager sms = SmsManager.getDefault(); ArrayList<String> parts = sms.divideMessage(message); sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null); 

模拟器在某些问题发送过程中的代码中的垃圾字符,所以使用apk在真正的手机,并检查代码,我相信你的应用程序不会发送垃圾邮件..一切顺利。

您应该从SMSC获得特定的短代码,用于发送超过160个字符的短信。