Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android smsManager处理严重重音字符_Android_Smsmanager_Android Sms - Fatal编程技术网

Android smsManager处理严重重音字符

Android smsManager处理严重重音字符,android,smsmanager,android-sms,Android,Smsmanager,Android Sms,例如,在我的安卓手机短信应用程序中,当短信中有严重的口音时,我会做出一些奇怪的行为;smsTEXT=“如果您有兴趣,请尽快致电办公室。” 消息是在一个160字符的短信长度,但当我调用这个 ArrayList<String> segments = smsManager.divideMessage(smsTEXT); sendMultipartTextMessage在一个单独的部分中似乎可以完美地发送消息(带有严重的重音),而在所有其他方面,该应用都可以正常工作 如果我用撇号替换严重重

例如,在我的安卓手机短信应用程序中,当短信中有严重的口音时,我会做出一些奇怪的行为;smsTEXT=“如果您有兴趣,请尽快致电办公室。”

消息是在一个160字符的短信长度,但当我调用这个

ArrayList<String> segments = smsManager.divideMessage(smsTEXT);
sendMultipartTextMessage
在一个单独的部分中似乎可以完美地发送消息(带有严重的重音),而在所有其他方面,该应用都可以正常工作

如果我用撇号替换严重重音,那么size()只会报告一段消息,而
sendTextMessage

如果我在消息中添加了几个严重的重音符号,那么size()最多会报告4个片段,尽管它看起来像
sendMultipartTextMessage
只发送一条短信


问:安卓
smsmsmanager
中的Grave重音有什么特别之处吗?

Grave不能用7位ascii(SMS的默认值)表示。这就要求它以16位字符的形式发送,这将最大字符数减少一半。因此,即使是短消息也需要2条短信。对于表情符号和其他非ASCII字符,您将看到相同的行为。如果你看到在一个短信应用程序中发送一个SMS,比如Android的消息,它显示了一个文本中剩余的字符,你会看到,一旦你添加了一个非ASCII字符,它就下降了一半(或者如果把它放在文本的中间,你会看到文本的数量跳起来)。我忘记了它不是GSM 7位默认字母表,因为它是ascii可打印字符(与寻呼机一起使用),所以我认为它是可以的。这意味着必须始终调用
divideMessage
,以确定是调用
sendTextMessage
还是
sendMultipartTextMessage
,除非这样的字符被其他字符替换。
if (segments.size() > 1 ){
    smsManager.sendMultipartTextMessage(etc...)
    nSegments = segments.size();
} else {
    smsManager.sendTextMessage(etc...)
    nSegments = 1;
}