发送长短信息

Mar*_*ark 14 android

我有一个应用程序,让用户发送短信.消息<160个字符时效果很好.在那之后,事情变得不那么完美了.好像这里有几个选项:

  1. 手动将消息分成多个SMS,将每个部分作为单独的SMS发送.
  2. 使用多部分发送SMS功能(sendMultipartTextMessage()).
  3. 将消息作为MMS消息发送(sendDataMessage()?).

这是我的新手:

1)跨运营商支持最多.用户可能会生气,因为您只需花费N个单独的消息,而不是转换为彩信等.

2)不知道这是由不同的运营商的支持,并阅读,一旦消息是大于3*160个字符的长度,得到由不同的短信应用程序转换为彩信反正 - 也许离这远干脆.

3)不确定如何做到这一点,旧手机可能不支持彩信.要使用android SDK发送彩信,我们只使用SmsManager.sendDataMessage()方法吗?

谢谢

Val*_*mer 33

这是一个相当古老的帖子,但在搜索Android多部分短信时谷歌很高,所以也许它可以帮到某个人.

关于第1部分和第2部分,它几乎是一回事.要使用sendMultipartTextMessage,您需要将长消息分解为字符串的ArrayList.然后根据需要发送尽可能多的SMS.简而言之:

SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(longMessage);
sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
Run Code Online (Sandbox Code Playgroud)

第3部分:正如已经指出的那样,MMS不是一种选择.收费和所有.


sap*_*sap 1

在我看来,第一个选项是大多数手机默认执行的操作。短信设计上只能发送一定数量的字符(可能是 160 个),只需通知用户该消息太大以及他是否仍想发送(还告知总共有多少条短信)。

至于彩信和多部分,正如您所说,并非每个运营商都支持它,因此它们似乎不是最佳选择。

编辑:至于 MMS 如何在 android-sdk 上工作,请查看此线程:Android SDK MMS

  • 你在哪个国家?如果运营商不支持多部分短信,我会感到惊讶。我住在英国,距离我上次使用不支持多部分短信的手机已经过去近十年了。我怀疑许多普通手机是否会将长短信转换为彩信(例如,在这里我可以获得免费短信,但彩信需要我花钱才能发送)。 (2认同)