2016-04-15 11 views
1

Ich habe eine Anwendung, wo ich einen SMS-Anbieter verwenden, um SMS an mein Android-Gerät zu senden. ich eine Nachricht von der folgenden Form zu senden:SMS von Java App gesendet erscheint nicht auf Android-Gerät

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

ich mit der jva.net Bibliothek m und der Code ist:

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(); 
} 

jedoch, was ich auf meinem Gerät erhalten, ist nur: " Wert: "

Ich denke, es hat mit der Codierung zu tun. Der Anbieter hat die Möglichkeit, die Unicode-Codierung zu aktivieren, aber das half auch nicht. Hat jemand eine Idee, warum ich die SMS nicht richtig anzeigen kann?

Thnks

+1

können wir vollständigen Code haben? –

+2

Ich könnte mir vorstellen, dass die Leerzeichen in der resultierenden URL das Problem verursachen. Ersetzen Sie sie durch '% 20' -' message = message.replace ("", "% 20"); '. –

+1

Hallo Mike, das ist richtig, danke !!! Wenn Sie Ihren Kommentar posten, werde ich ihn als Antwort markieren. – panipsilos

Antwort

1

Anscheinend sind die Räume in der resultierenden URL wurden das Problem verursacht. Einfach durch ihren prozentcodierten Wert zu ersetzen - - scheint den Trick zu machen.

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

Wenn Sie alle Zeichen in der Nachricht enthalten andere als die alphanumerischen Zeichen und Grundsatz, müssen Sie URL-kodieren die ganze String. Die URLEncoder Klasse ist in Android verfügbar, obwohl es Leerzeichen wie + codiert, so müssen Sie möglicherweise eine replace() ähnlich wie oben nach der Codierung durchführen, wie ich mir vorstellen würde + unverändert im Nachrichtentext durchgehen würde.

Verwandte Themen