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。感謝您的答案!
我已經更改爲異常,我仍然沒有得到任何異常 – A1t0r
布爾真的是真的嗎? – Inge
「開」變量可以是真或假,取決於切換是否激活。問題不在那裏,但謝謝。 – A1t0r