【问题标题】:sms sent from java app does not appear on android device从 java 应用程序发送的短信不会出现在 android 设备上
【发布时间】:2016-04-15 21:12:18
【问题描述】:

我有一个应用程序,我在其中使用短信提供商将短信发送到我的安卓设备。 我正在发送以下形式的消息:

  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 编码,但这也无济于事。 有人知道为什么我无法正确显示短信吗?

谢谢

【问题讨论】:

  • 我们可以有完整的代码吗?
  • 我想这是导致问题的结果 URL 中的空格。尝试将它们替换为 %20 - message = message.replace(" ", "%20");
  • 嗨,迈克,没错,谢谢!!!如果您发表评论,我会标记它作为答案。

标签: java android sms


【解决方案1】:

显然,结果 URL 中的空格导致了问题。只需将它们替换为百分比编码值 - %20 - 似乎就可以了。

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

如果您在消息中包含字母数字和基本标点以外的任何字符,您可能需要对整个 String 进行 URL 编码。 URLEncoder 类在 Android 中可用,尽管它将空格编码为 +,因此您可能必须在编码后执行类似于上述的 replace(),因为我想 + 将在消息正文。

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2017-02-23
    • 2013-02-18
    • 2012-12-21
    • 1970-01-01
    • 2016-07-03
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多