使用sendMultipartTextMessage发送长短信

时间:2015-12-26 06:26:30

标签: android sms

我使用此代码:

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

执行此代码时显然没有错误,但未收到短信。 发送短(&lt; = 160个字符)短信时,此代码可以成功运行。

原因是什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

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)

***试试真实设备。

答案 1 :(得分:0)

即使使用我自己的代码,有时也会收到长短信(我特别认为是第一次)。也许某些标准或垃圾邮件预防机制是由蜂窝公司生效的。

随后:

是的,运营商似乎根据某些标准(如许多重复字符)过滤消息。似乎我可以通过发送有意义的信息来避免这种情况。