比如,在我的安卓短信应用程序中出现了一些奇怪的行为,比如短信中有很重的口音;smsTEXT =:“如果你有兴趣的话,Pls会尽快给办公室打电话。”。
消息是在单一160字符短信长度,然而,当我调用这个;
ArrayList<String> segments = smsManager.divideMessage(smsTEXT);报告的消息部件数量大于1,实际上大于2。
if (segments.size() > 1 ){
smsManager.sendMultipartTextMessage(etc...)
nSegments = segments.size();
} else {
smsManager.sendTextMessage(etc...)
nSegments = 1;
}无论如何,sendMultipartTextMessage似乎在一个单独的部分很好地发送了消息(带有严重的口音),而在所有其他方面,该应用程序运行良好。
如果我用Apostrophe代替严肃的口音,那么只有一个段消息是由size()报告的,一个短信是由sendTextMessage一次性发送的。
如果我在消息中添加了几个重音,就会按size()报告多达4个片段,尽管看起来sendMultipartTextMessage只发送了一个短消息
问:安卓smsManager中的严肃口音有什么特别之处吗?
发布于 2019-06-23 06:11:46
Grave不能用7位ascii表示(SMS的默认设置)。这就要求将其作为16位字符发送,从而将最大字符数减少一半。因此,即使是一条短消息也需要2 SMSes。您将看到使用emojis和其他非ASCII字符的相同行为。如果你在像Android这样的短信应用中发送短信,显示文本中剩下的字符,你就会看到,一旦你添加了一个非ASCII字符,它就会下降一半(或者如果把它放在文本的中间,你就会看到文本的数量跃升)。
https://stackoverflow.com/questions/56720878
复制相似问题