¿Cómo ejecutar y mostrar el resultado de un comando de shell ssh con JSch?

Trato de usar la bibliotecaJSch - Java Secure Channel hacer una conexión ssh en mi aplicación de Android, funciona.

Ahora me gustaría ejecutar un comando y recuperar el resultado.

He intentado varios métodos que funciona mejor es este. Sin embargo, este método funciona solo en parte porque, por alguna razón, no puedo explicarlo, mi programa se detiene al final de mi ciclo, pero soy el resultado del comando que aparece en mi registro.

Aquí está mi código:

public static String executeRemoteCommand(String username, String password, String hostname, int port) throws Exception {     
    JSch jsch = new JSch();
    Session session = jsch.getSession(username, hostname, port);
    session.setPassword(password);

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

    session.connect();

    Channel channel = session.openChannel("shell");
    channel.connect();

    DataInputStream dataIn = new DataInputStream(channel.getInputStream());  
    DataOutputStream dataOut = new DataOutputStream(channel.getOutputStream());  

    // send ls command to the server  
    dataOut.writeBytes("ls\r\n");  
    dataOut.flush();  

    // and print the response   
    String line = dataIn.readLine();
    String result = line + "\n";

    while ((line = dataIn.readLine()) != null) {
        result += line + "\n";
        Log.i("TAG", "Line: "+line);
    }

    dataIn.close();  
    dataOut.close();  
    channel.disconnect();  
    session.disconnect();

    return result;
}

¿Alguien más tiene una mejor manera de ejecutar un comando sheel con JSch?

Gracias de antemano !

Respuestas a la pregunta(2)

Su respuesta a la pregunta