从Java应用程序发送的短信不会出现在Android设备上

时间:2016-04-15 10:56:08

标签: java android sms

我有一个应用程序,我使用短信提供程序发送短信到我的Android设备。 我发送的信息如下:

  message =  "value: "+Float.toString(float1)+" and ratio: "+Float.toString(float2)

我使用的是jva.net库,代码是:

System.out.println("Sending sms");

InputStream response = null;
URLConnection connection = null;
try {
    connection = new URL("https://somesmsprovider.com/sms/sms.jsp?user=user&password=pass&mobiles=xxxxxxxxxx&sms="+message).openConnection();
} catch (MalformedURLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
} catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

然而,我在设备上收到的只是:“价值:”

我想这与编码有关。提供程序可以选择激活unicode编码,但这也没有帮助。 任何人都知道为什么我无法正确显示短信?

Thnks

1 个答案:

答案 0 :(得分:1)

显然,生成的URL中的空格导致了问题。简单地用百分比编码的值替换它们 - %20 - 似乎可以解决问题。

message = message.replace(" ", "%20");

如果您在邮件中包含除字母数字和基本标点符号以外的任何字符,则可能需要对整个String进行网址编码。 URLEncoder类在Android中可用,但它将空格编码为+,因此您可能必须在编码后执行与上面类似的replace(),我想象{{1}将在消息体中保持不变。