我在我的Android应用程序中使用Gson类来压缩对象并通过REST将它们发送到服务器并使用HTTP帖子和响应返回。它一直运作良好。
但在我正在编写的新应用中,我正在尝试做同样的事情,但使用SMS消息而不是HTTP帖子。比如我有一个班级......
class LocReturn
{
public String error; //one char y = error
public String accuracy;
public String hyperlink;
public String stationary; //one char y = stationary
public String speedmph;
public String speedkph;
public String bearing;
}
在我展平类之前,超链接字符串获得以下值。 。
http://maps.google.com/maps?z=17&t=h&q=loc:31.7898,-111.0354
然而,当我检查json字符串时,我看到超链接已更改为。 。
http://maps.google.com/maps?z\u003d17\u0026t\u003dh\u0026q\u003dloc:31.7898,-111.0354
此外,SMS发送正在获取NullPointer异常。
发送短信的代码是。 。
Gson gson = new Gson();
String jsonstring = gson.toJson(myReturn);
String SMSBody = "###2" + jsonstring;
DebugLog.debugLog("Mole is sending Back: " + " num= " + GlobalStuff.Mobileno + " SMSBody= " + SMSBody, false);
SmsManager
.getDefault()
.sendTextMessage(GlobalStuff.Mobileno, null, SMSBody, null, null);
DebugLog.debugLog("After SMS Send " + SMSBody, true);
finish();
所以,(1)我看不出为什么我得到NullPointer和(2)为什么超链接会发生变化,这与它有什么关系。 谢谢, 加里 编辑:新的json对象创建...
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
确实保持超链接不被修改,但是nullPointerException仍在继续。它肯定是导致异常的sendText行,因为当我用SMSBody替换“hello world”时,它工作正常。 SMSBody的内容是......
###2{"accuracy":"Excellent","bearing":"","error":"n","hyperlink":"http://maps.google.com/maps?z=17&t=h&q=loc:31.7898,-111.0353","speedkph":"","speedmph":"","stationary":"y"}
这会以某种方式导致nullPointerException
答案 0 :(得分:0)
为未来的googlers回答我自己的问题。 。
我忘了短信代表SHORT留言服务。我的消息太长了,猜猜在SMSManager.sendTextMessage中发送的消息太长会发生什么?你得到一个nullPointerException(而不是获得MessageTooLong异常)。
加里