2016-08-19 61 views
0

我需要发送包含我的Android应用程序中的JSON的短信。下面是代码:Android应用程序发送错误字符的短信

SmsManager sms = SmsManager.getDefault(); 
String message = "{\"phone\":\"9999-9999\"}"; 
sms.sendTextMessage(phoneNumber, null, message, null, null); 

我与一些手机测试,其中大部分得到正确的讯息:

{"phone":"9999-9999"} 

但是一个模型(LG G2迷你)更改“{”字符时,收到短信:

ä"phone":"9999-9999"ñ 

有人知道为什么会发生吗?

任何提示会有很大的帮助,

感谢

回答

1

有短信特殊字符集,看到维基百科链接:https://en.wikipedia.org/wiki/GSM_03.38

字符{},是在您的手机上出现错误,位于基本字符集分机号。尝试其他字符如|,]等等。如果这些字符在您的手机上无法使用,我想您的问题与此charset扩展名有关。从扩展需要

字符与0x1B(逃避短信字符)进行转义。这只是一个猜想,也许可能会出现逃跑问题。

0

看起来像LG G2 Min没有正确实施3GPP TS 23.038。

SMS使用不同的字符集。最常用的是GSM 7位默认字母表。它用美国和欧洲语言使用的大多数常用字符和特殊字符编码7位。一些特殊字符(^ {} \ < [〜]€)不适合这个7位表格。转义字符切换到包含上述特殊字符的GSM 7 Bit默认字母表扩展表。这些字符是由两个7位字符,ESC和用于例如“{”。

你可以尝试一下,如果可能的话,就是使用Unicode。您可以通过在消息中使用不属于7位GSM字符代码及其扩展表的Unicode字符来强制Unicode。