2014-03-25 3 views
0

저는 RaspBMC를 실행중인 나무 딸기 파이에 두 가지 명령 (xbmc 시작 및 중지)을 보내는 간단한 안드로이드 응용 프로그램을 작성하려고합니다. 나는 SSH 연결을 위해 jsch 라이브러리를 사용하고있다. 단순히 명령을 내 RPI로 전송되지 않은 예외 나 오류가 발생하고 있지 않다캔트가 jpch로 Rpi에 명령을 보내십시오.

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

} 

: 다음은 내 코드입니다. 답변 주셔서 감사합니다!

답변

0

catch 절을 변경하여 모든 Exception을 가져 와서 다른 곳에서 예외가 던져 졌는지 확인할 수 있도록하십시오.

catch (Exception e)... 
+0

예외로 변경되었으며 아직 예외가 발생하지 않았습니다. – A1t0r

+0

부울은 실제로 true입니까? – Inge

+0

"on"변수는 토글이 활성화되었는지 여부에 따라 true 또는 false가 될 수 있습니다. 문제는 거기 있지 않지만 감사합니다. – A1t0r

관련 문제