2014-03-25 90 views
0

我想做一個簡單的android應用發送兩個命令(啓動和停止xbmc)到我的覆盆子pi運行RaspBMC。我正在使用jsch庫進行SSH連接。 這裏是我的代碼:不能發送命令到Rpi與jsch

public void onToggleClicked(View view) { 

    boolean on = ((ToggleButton) view).isChecked(); 
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    dir_ip = prefs.getString("IP_DIR", ""); 
    String[] params = new String[2]; 
    params[0] = dir_ip; 
    if (!validarIP(dir_ip)){ 
    alert.showAlertDialog(MainActivity.this, "Error", 
      "La direccion IP no ha sido seleccionada o es erronea. Vaya a Settings y elija una IP", false); 
    ((ToggleButton) view).setChecked(!on); 
    } 
    else{ 
    if (on) { 
     Log.d("AITOR", "START"); 
      params[1] = "sudo initctl stop xbmc"; 
     new sendCommand().execute(params); 
      } else { 
      params[1] = "sudo initctl start xbmc"; 
     new sendCommand().execute(params);     
      } 
    } 
    dir_ip = ""; 
} 

class sendCommand extends AsyncTask<String, Void, Void> { 

    @Override 
    protected Void doInBackground(String... params) { 

      JSch jsch = new JSch(); 
      Session session; 
     try { 
      session = jsch.getSession("pi", params[0], 22); 

      session.setPassword("raspberry"); 

      // Avoid asking for key confirmation 
      Properties prop = new Properties(); 
      prop.put("StrictHostKeyChecking", "no"); 
      session.setConfig(prop); 

      session.connect(); 

      // SSH Channel 
      ChannelExec channelssh = (ChannelExec) 
            session.openChannel("exec");  
      ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
      channelssh.setOutputStream(baos); 

      // Execute command 
      channelssh.setCommand(params[1]); 
      channelssh.connect();   
      channelssh.disconnect(); 
     } 
      catch (JSchException e) { 
       Log.d("AITOR", e.getMessage()); 
      } 
     return null; 
    } 

} 

我沒有得到任何異常或錯誤簡單地命令不被髮送到我的RPI。感謝您的答案!

回答

0

嘗試更改您的catch子句以獲取所有異常,以便您可以查看是否在其他位置引發了異常。

catch (Exception e)... 
+0

我已經更改爲異常,我仍然沒有得到任何異常 – A1t0r

+0

布爾真的是真的嗎? – Inge

+0

「開」變量可以是真或假,取決於切換是否激活。問題不在那裏,但謝謝。 – A1t0r