我有一个短信应用程序,一个来自希腊语的用户正在报告国家字符的问题。一切正常,但当他在我的应用程序中键入常见的希腊字母如alfa,beta时,SMS会在70个字符后分成两部分。但如果他使用内置的默认SMS应用程序,他可以在分割之前键入160个字符。
ArrayList<String> msgTexts = null;
SmsManager sms = SmsManager.getDefault();
msgTexts = sms.divideMessage(sBuf);
如何使divideMessage和sendMultipartTextMessage与希腊国家字符一起正常工作?我还没有听到其他人报道过这个问题。
有什么想法吗?
答案 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)。 路由数据和其他元数据是有效负载大小的补充。