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;
}
}
: 다음은 내 코드입니다. 답변 주셔서 감사합니다!
예외로 변경되었으며 아직 예외가 발생하지 않았습니다. – A1t0r
부울은 실제로 true입니까? – Inge
"on"변수는 토글이 활성화되었는지 여부에 따라 true 또는 false가 될 수 있습니다. 문제는 거기 있지 않지만 감사합니다. – A1t0r