Android アプリで Gson クラスを使用して、オブジェクトをフラット化し、REST 経由でサーバーに送信し、HTTP ポストと応答を使用して戻します。それは常にうまくいきました。
しかし、私が書いている新しいアプリでは、同じことをしようとしていますが、HTTP 投稿の代わりに SMS メッセージを使用しています。たとえば、クラスがあります...
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 Exception が発生します。
SMS メッセージを送信するコードは です。. .
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 は続きます。SMSBody を「hello world」に置き換えると正常に動作するため、例外を引き起こしているのは間違いなく sendText 行です。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 を引き起こしています