无法通过json发送超链接

时间:2013-08-07 00:43:24

标签: android json sms gson

我在我的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

1 个答案:

答案 0 :(得分:0)

为未来的googlers回答我自己的问题。 。

我忘了短信代表SHORT留言服务。我的消息太长了,猜猜在SMSManager.sendTextMessage中发送的消息太长会发生什么?你得到一个nullPointerException(而不是获得MessageTooLong异常)。

加里