如何发送超过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个字符的短信。