【问题标题】:Jsch ssh with edittext android带有edittext android的Jsch ssh
【发布时间】:2018-06-03 19:07:47
【问题描述】:

你好我有一个问题,我使用 jsch 通过 ssh 连接到例如一个设备我的代码工作,但它使用集成的用户名、密码和主机我想在那里创建活动写用户名密码和主机,然后连接并执行一些命令,例如“重启”......当我在编辑文本字段中输入 ip adpress 时,从那里获取数据不是固定的 ip,我想你可以理解我并为我的英语不好:) 这是我的代码 >>

Activity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ssh);

    Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
    mToolbar.inflateMenu(R.menu.main_menu);
    setSupportActionBar(mToolbar);
}

@SuppressLint("StaticFieldLeak")
public void onClick11 (View v) {
    new AsyncTask<Integer, Void, Void>(){
        @Override
        protected Void doInBackground(Integer... params) {
            try {
                executeSSHcommand();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }.execute(1);
}


@SuppressLint("StaticFieldLeak")
public void onClickct (View v) {
    new AsyncTask<Integer, Void, Void>(){
        @Override
        protected Void doInBackground(Integer... params) {
            try {
                Compliancetest();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }.execute(1);
}

public void executeSSHcommand(){
    String user = "user";
    String password = "user";
    String host = "192.168.1.1";
    int port=22;
    try{

        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setTimeout(10000);
        session.connect();
        ChannelExec channel = (ChannelExec)session.openChannel("exec");
        channel.setCommand("reboot");
        channel.connect();
        channel.disconnect();

    }
    catch(JSchException e){

    }
}

public void Compliancetest(){
    String user = "user";
    String password = "user";
    String host = "192.168.1.1";
    int port=22;
    try{

        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setTimeout(10000);
        session.connect();
        ChannelExec channel = (ChannelExec)session.openChannel("exec");
        channel.setCommand("reboot");
        channel.connect();
        channel.disconnect();

    }
    catch(JSchException e){

    }
}

还有我的activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">

<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar">
</include>

<EditText
    android:id="@+id/ip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName"
    android:hint="IP Address" />
<EditText
    android:id="@+id/uname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName"
    android:hint="Username" />

<EditText
    android:id="@+id/pw"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPassword"
    android:hint="Password" />

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:onClick="onClick11"
    android:text="@string/command" />

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:onClick="onCommand"
    android:text="@string/reboot" />

【问题讨论】:

  • 问题到底是什么?集成用户是什么意思,通过...?
  • 我想从 xml 文件中使用它,例如 string user = "edittextdata" public void executeSSHcommand(){ String user = "user";字符串密码=“用户”;字符串主机=“192.168.1.1”;国际端口=22;试试{
  • 所以你应该通过edittext.gettext从你的edittext中获取文本,然后将它保存在用户中,传递,....
  • 你能告诉我怎么做吗?对不起,我只是 java 的新手 :)

标签: java android xml ssh jsch


【解决方案1】:

例如,让我们谈谈从以下位置获取 ip:

String ipName;

EditText ip =findViewById(R.id.ip);

ipName = ip.getText();

在填充完编辑文本后放入bottom.onclicklistener中进行操作

【讨论】:

    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2016-11-03
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多