Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 10 дек 2018, 18:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 03 мар 2018, 11:34 

Зарегистрирован: 03 мар 2018, 11:21
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый день, есть пример рабочего кода, который по SSH отсылает команду на компьютер. Подскажите как прочитать ответ на команду. К примеру вывод команды "ls".
Код: [ Загрузить ] [ Скрыть ]
  1. //MainActivity.java 
  2. ******* 
  3. package com.example.stas.ssh1; //Код для Main.java 
  4.  
  5. import android.app.Activity; 
  6. import android.os.AsyncTask; 
  7. import android.os.Bundle; 
  8.  
  9. import com.jcraft.jsch.ChannelExec; 
  10. import com.jcraft.jsch.JSch; 
  11. import com.jcraft.jsch.Session; 
  12.  
  13. import java.io.ByteArrayOutputStream; 
  14. import java.util.Properties; 
  15.  
  16. public class MainActivity extends Activity { 
  17.     @Override 
  18.     public void onCreate(Bundle savedInstanceState) { 
  19.         super.onCreate(savedInstanceState); 
  20.         setContentView(R.layout.activity_main); 
  21.         new AsyncTask<Integer, Void, Void>() { 
  22.             @Override 
  23.             protected Void doInBackground(Integer... params) { 
  24.                 try { 
  25.                     executeRemoteCommand("pi", "yourpass", "10.0.2.2", 22); //Сюда адрес ssh сервера.10.0.2.2 это локальный комп  
  26.                 } catch (Exception e) { 
  27.                     e.printStackTrace(); 
  28.                 } 
  29.                 return null; 
  30.             } 
  31.         }.execute(1); 
  32.     } 
  33.  
  34.     public static String executeRemoteCommand(String username, String password, String hostname, int port) 
  35.             throws Exception { 
  36.         JSch jsch = new JSch(); 
  37.         Session session = jsch.getSession(username, hostname, port); 
  38.         session.setPassword(password); 
  39.  
  40.         // Avoid asking for key confirmation 
  41.         Properties prop = new Properties(); 
  42.         prop.put("StrictHostKeyChecking", "no"); 
  43.         session.setConfig(prop); 
  44.  
  45.         session.connect(); 
  46.  
  47.         // SSH Channel 
  48.         ChannelExec channelssh = (ChannelExec) 
  49.                 session.openChannel("exec"); 
  50.         ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
  51.         channelssh.setOutputStream(baos); 
  52.  
  53.         // Execute command 
  54.         channelssh.setCommand("lsusb > /home/pi/test.txt"); //А сюда команду (данная команда создает фаил test с выводом устройств usb 
  55.         channelssh.connect(); 
  56.         channelssh.disconnect(); 
  57.  
  58.         return baos.toString(); 
  59.     } 

Примечание-т к сам на 0 уровне, чтобы использовать этот код надо прописать в файле манифест доступ в инет. А еще загрузить библиотеки JSch & Jzip
Код: [ Загрузить ] [ Скрыть ]
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     package="com.example.stas.ssh1"> 
  4.  
  5.     <uses-permission android:name="android.permission.INTERNET"/> //Расзрешить доступ в интернет 
  6.  
  7.     <application 
  8.         android:allowBackup="true" 
  9.         android:icon="@mipmap/ic_launcher" 
  10.         android:label="@string/app_name" 
  11.         android:roundIcon="@mipmap/ic_launcher_round" 
  12.         android:supportsRtl="true" 
  13.         android:theme="@style/AppTheme"> 
  14.         <activity android:name=".MainActivity"> 
  15.             <intent-filter> 
  16.                 <action android:name="android.intent.action.MAIN" /> 
  17.  
  18.                 <category android:name="android.intent.category.LAUNCHER" /> 
  19.             </intent-filter> 
  20.         </activity> 
  21.     </application> 
  22.  
  23. </manifest> 


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB