divideMessage如何运作

时间:2015-05-26 19:15:10

标签: java android

我有一个短信应用程序,一个来自希腊语的用户正在报告国家字符的问题。一切正常,但当他在我的应用程序中键入常见的希腊字母如alfa,beta时,SMS会在70个字符后分成两部分。但如果他使用内置的默认SMS应用程序,他可以在分割之前键入160个字符。

    ArrayList<String> msgTexts = null;
    SmsManager sms = SmsManager.getDefault();

    msgTexts = sms.divideMessage(sBuf);

如何使divideMessage和sendMultipartTextMessage与希腊国家字符一起正常工作?我还没有听到其他人报道过这个问题。

  • 手机:三星GT S7580与android 4.2.2
  • 使用内置默认SMS应用程序
  • 希腊语用于移动设置

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您需要阅读此http://en.wikipedia.org/wiki/Short_Message_Service,特别是&#34;邮件大小&#34;章

  

短消息可以使用各种字母编码:   默认的GSM 7位字母表,8位数据字母表和16位   UCS-2字母表。 取决于订阅者所使用的字母   在手机中配置,这导致最大的个人短路   消息大小为160个7位字符,140个8位字符或70   16位字符。

答案 1 :(得分:0)

  

SMSC和手机之间的短消息传输是   每当使用SS7的移动应用程序部分(MAP)时都会完成   协议。[43]消息与MAP MO-和MT-ForwardSM一起发送   操作,其有效载荷长度受到约束的限制   信令协议精确到140个八位字节(140个八位字节* 8位/   八位字节= 1120位)。短消息可以使用各种编码   字母:默认的GSM 7位字母表,8位数据字母表,   和16位UCS-2字母表。[44]取决于哪个字母表   用户已在手机中配置,这导致最大值   单个短消息大小为160个7位字符,140个8位   字符,或70个16位字符。 GSM 7位字母表支持   强制性的GSM手机和网络元素,[44]但字符在   语言,如阿拉伯语,中文,韩语,日语或西里尔语   字母语言(例如乌克兰语,塞尔维亚语,保加利亚语等)必须是   使用16位UCS-2字符编码进行编码(请参阅Unicode)。   路由数据和其他元数据是有效负载大小的补充。

@Wikipedia