/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.freedomotic.plugins.devices; import it.freedom.api.Tool; import it.freedom.exceptions.UnableToExecuteException; import com.freedomotic.plugins.devices.sms.SmsSenderGui; import it.freedom.reactions.Command; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.StringTokenizer; /** * * @author Enrico */ public class SmsSender extends Tool { String defaultNumber; public SmsSender() { super("Sms Sender", "/it.nicoletti.telecom/sms-sender.xml"); defaultNumber = configuration.getStringProperty("default-phone-number", "+393922907161"); //TODO: cambiare prendendo il numero come parametro nel Command gui = new SmsSenderGui(this); start(); } @Override protected void onCommand(Command c) throws IOException, UnableToExecuteException { String phoneNumber = c.getProperty("phone-number"); String message = c.getProperty("message"); if (!(phoneNumber.equalsIgnoreCase("")) && !(message.equalsIgnoreCase(""))) { sendSms(phoneNumber, message); } } /** * Invio di un sms testuale tramite il servizio Mobyt * * @param telNumber * @param content */ public void sendSms(String telNumber, String content) { try { System.out.println("Try to send sms to " + telNumber); String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8"); data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8"); String contentFormatted = ""; //considerare che content non pu� contenere spazi perch� � usato come parametro in URL StringTokenizer st = new StringTokenizer(content); while (st.hasMoreTokens()) { if (st.countTokens() == 1) { contentFormatted += st.nextToken(); } else { contentFormatted += st.nextToken() + "+"; } } System.out.println("Sms content:\n " + contentFormatted); String parametri = "ADDRESS=" + contentFormatted; parametri += "&NUMBER=" + telNumber; System.out.println("Request->" + "http://andiamo.dit.unitn.it/sms/smsformiketxt.php?" + parametri); URL url = new URL("http://andiamo.dit.unitn.it/sms/smsformiketxt.php?" + parametri); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); //Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { System.out.println(line); } wr.close(); rd.close(); } catch (Exception e) { e.printStackTrace(); } } @Override protected boolean canExecute(Command c) { throw new UnsupportedOperationException("Not supported yet."); } }