【问题标题】:How to send the SMS more than 160 character?如何发送超过 160 个字符的短信?
【发布时间】:2023-03-13 07:02:02
【问题描述】:

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

但它会在消息中发送垃圾字符。 谁能帮帮我?

【问题讨论】:

标签: android sms


【解决方案1】:

试试下面的代码可能会有所帮助

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

【讨论】:

  • 我使用这个,但它会在消息中发送垃圾字符。
  • 这段代码非常适合我。 (android 2.3.6,三星galaxy Ace),非常感谢分享。
  • 这也适用于我,谢谢,Nexus S 在旧阿尔卡特手机上运行 4.2 Jelly Bean。
  • 使用最新的操作系统 - Nexus 5 干杯!
  • @ingsaurabh:我试过这段代码,它可以工作。但是,在我发送消息的手机上,它留下了一条未发送的消息,并发送了相同的消息?
【解决方案2】:

垃圾字符?方法 sendMultipartTextMessage 只发送 text 消息。如果你想发送非文本消息,你应该看看方法 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)

【讨论】:

  • 我已经尝试过了,也把它放在我的问题中。毫无疑问,此代码拆分消息并发送它,但在另一端消息中带有一些不受支持的字符。
  • 似乎与您遇到的问题相似,但他们仅在模拟器上声称。 code.google.com/p/android/issues/detail?id=13737
  • 是的,我也有同样的问题,但我无法理解他所说的发送没有垃圾字符的长消息。
  • 这项工作在真实设备上。设备不发送垃圾字符,工作正常,没有任何问题。
【解决方案3】:

模拟器在某些问题期间会在该代码中发送垃圾字符,因此请在真实移动设备中使用 apk,并检查代码,我相信您的应用程序不会发送垃圾消息..一切顺利。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多