I made SSH connection app which allow me to connect to server by button. I made class LoginData.java
where I stored IP, username, password and port. In MainActivity.java
I'm trying to set variables to LoginData.java
and get from it to Menu.java
but I get null. How can I fix that ?
There is LoginData.java
public class LoginData {
String ip ;
String username ;
String password ;
int port = 22;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
MainActivity.java
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.admin.sshconnect.connect.LoginData;
public class MainActivity extends AppCompatActivity {
EditText editTextIp ;
EditText editTextUsername;
EditText editTextPassword;
EditText editTextPort;
TextView textView;
LoginData lg = new LoginData();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button_conenct);
editTextIp = (EditText)findViewById(R.id.edit_text_ip);
editTextUsername = (EditText)findViewById(R.id.edit_text_username);
editTextPassword = (EditText)findViewById(R.id.edit_text_password);
editTextPort = (EditText)findViewById(R.id.edit_text_port);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
lg.setIp(editTextIp.getText().toString());
lg.setUsername(editTextUsername.getText().toString());
lg.setPassword(editTextPassword.getText().toString());
lg.setPort(Integer.parseInt(editTextPort.getText().toString()));
Intent menu_activity = new Intent(getApplicationContext(), Menu.class);
startActivity(menu_activity);
}
});
Button btn2 = (Button)findViewById(R.id.button_check);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView = (TextView)findViewById(R.id.text_view);
textView.setText(editTextIp.getText().toString() + "" + editTextUsername.getText().toString() + editTextPassword.getText().toString()
+ editTextPort.getText().toString());
}
});
}
}
Menu.java
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.example.admin.sshconnect.connect.LoginData;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.io.ByteArrayOutputStream;
import java.util.Properties;
public class Menu extends AppCompatActivity {
LoginData lg = new LoginData();
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
textView = (TextView)findViewById(R.id.text_view);
textView.setText(lg.getIp() + "" + lg.getUsername() + lg.getPassword() + lg.getPort());
new AsyncTask<Integer, Void, Void>(){
@Override
protected Void doInBackground(Integer... params) {
try {
executeRemoteCommand(lg.getUsername(), lg.getPassword(),lg.getIp(), lg.getPort());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(1);
}
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();
// SSH Channel
ChannelExec channelssh = (ChannelExec)
session.openChannel("exec");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
channelssh.setOutputStream(baos);
// Execute command
channelssh.setCommand("reboot");
channelssh.connect();
channelssh.disconnect();
return baos.toString();
}
}