android jsch raspberry-pi

Aplicación Java para Android Jsch envía comandos usando botones



raspberry-pi (1)

Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub String ip,username,password; ip="192.168.x.x"; username="guest"; password="guest"; //Write your code here });

Intento escribir mi primera aplicación de Android para conectarme a mi Raspberry Pi y controlar mi réflex digital usando la biblioteca gphoto2. Actualmente tengo una aplicación muy cruda con dos botones, un botón "Conectar" y un botón "Capturar".

package com.example.myfirstapp; import java.util.Properties; import com.jcraft.jsch.*; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.View; public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } /** Called when the user clicks the send button */ public void sshConnect(View view) throws Exception { Properties props = new Properties(); props.put("StrictHostKeyChecking", "no"); String host="123.456.7.89"; String user ="pi"; String pwd = "password"; int port = 22; Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); config.put("compression.s2c", "zlib,none"); config.put("compression.c2s", "zlib,none"); JSch jsch=new JSch(); Session session=jsch.getSession(user, host, port); session.setConfig(config); session.setPassword(pwd); session.connect(); Context context = getApplicationContext(); CharSequence text = "Connected to Pi"; int duration = android.widget.Toast.LENGTH_SHORT; android.widget.Toast toast = android.widget.Toast.makeText(context, text, duration); toast.show(); } public static void sendCapture(Session session) throws Exception { Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand("gphoto2 --capture-image"); channel.setInputStream(null); ((ChannelExec) channel).setErrStream(System.err); channel.connect(); } }

Puedo conectarme a mi Raspberry pi pero no puedo pasar la sesión jsch al botón "Capturar" sin llamarlo desde la sección de conexión usando:

sendCapture(session);

Me gustaría que el código se conecte a través de ssh con el botón "Conectar" y luego pueda tomar fotos con el botón "capturar" tantas veces como sea posible. Cualquier pregunta o consejo general bienvenida.

Gracias