• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps How can I manage a JSCH SSH session connection across classes?

Deemar

Newbie
I have an Android application which connects to my desktop via SSH when I load it, it works fine. When I click a button on the interface on my phone, it sends a command through the SSH connection to be executed on my desktop, that works fine also. The problem is I have one class that opens the connection and sends all the commands through. I call this class from my onCreate method with button listeners.

So I have my class Init which opens the connection when the program starts, then I have a button listener for button_1 which calls
Code:
Init.send("mkdir "test_directory");
No problem, that works great but what if I want to have a button on another screen? How can I get the same Init object to maintain the open session with my desktop? If I create a new Init object in the other class it will reconnect on a new session but I want to use the same one.

So I'm wondering how I can (for example):
1. launch application, create Init object and call Init.connect(username, password, port, host)
2. click a button and use button listener to call Init.send("mkdir test_directory")
3. click a button and load a new screen with new buttons
4. this loads a new .java class with a new onCreate method to manage the new display with new buttons (is this necessary?)
------------everything works up to here--------------
5. click one of the new buttons managed by the new class but use the same session created in the original class from the original Android screen

To explain exactly what I'm doing, screen 1 has a button which loads screen 2. Screen 2 has a list of directories on the remote machine. Screen 3 has a list of directories inside the directory clicked on screen 2. I want to send a request for the directories on screen 2 using the Init object created from screen 1 which was displayed on launch.
 
Hi,
I am also trying for the same kind of app.
looking for some help regarding access of PC from my app.
can you please suggest me what third party API we need to use to connect PC from android device.

Thanks in Advance
 
I have an Android application which connects to my desktop via SSH when I load it, it works fine. When I click a button on the interface on my phone, it sends a command through the SSH connection to be executed on my desktop, that works fine also. The problem is I have one class that opens the connection and sends all the commands through. I call this class from my onCreate method with button listeners.

So I have my class Init which opens the connection when the program starts, then I have a button listener for button_1 which calls
Code:
Init.send("mkdir "test_directory");
No problem, that works great but what if I want to have a button on another screen? How can I get the same Init object to maintain the open session with my desktop? If I create a new Init object in the other class it will reconnect on a new session but I want to use the same one.

So I'm wondering how I can (for example):
1. launch application, create Init object and call Init.connect(username, password, port, host)
2. click a button and use button listener to call Init.send("mkdir test_directory")
3. click a button and load a new screen with new buttons
4. this loads a new .java class with a new onCreate method to manage the new display with new buttons (is this necessary?)
------------everything works up to here--------------
5. click one of the new buttons managed by the new class but use the same session created in the original class from the original Android screen

To explain exactly what I'm doing, screen 1 has a button which loads screen 2. Screen 2 has a list of directories on the remote machine. Screen 3 has a list of directories inside the directory clicked on screen 2. I want to send a request for the directories on screen 2 using the Init object created from screen 1 which was displayed on launch.

Not sure how I missed this post when it was posted, but you should have a look at the singleton design pattern:
Introducing the singleton - "The Single Java Object"
 
Back
Top Bottom