Android smsManager处理Grave重音符号

时间:2019-06-23 03:55:36

标签: android smsmanager android-sms

例如,当消息中出现Grave口音时,我的Android短信应用中出现了一些奇怪的行为; smsTEXT = “如果您愿意,请尽快给办公室打电话。”

消息在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似乎可以在一个部分中完美地(带有Grave口音)发送消息,而在所有其他方面,该应用程序都可以正常工作

如果我将Grave口音替换为Apostrophe,则size()仅报告单个分段消息,而sendTextMessage则单发一次发送短信。

如果我在邮件中添加了几个Grave口音,尽管sendMultipartTextMessage似乎只发送一个短信,但size()最多报告了4个分段

问题:Android smsManager中的Grave口音有什么特别之处吗??

1 个答案:

答案 0 :(得分:3)

Grave不能用7位ascii(SMS的默认值)表示。然后,这要求将其作为16位字符发送,这将最大字符数减少了一半。因此,即使是一条短消息也将需要2条SMS。您将看到表情符号和其他非ASCII字符的相同行为。如果您想在像Android消息之类的消息传递应用程序中发送SMS来显示文本中剩余的字符,则添加非ASCII字符后,它将立即减半(或者将其放置在中间的文本,您会看到文本数量猛增)。