마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

runtime.exec() 이용하여 command 출력 질문

0 추천

안드로이드를 접하고 공부하고 있는 초보입니다ㅜㅜ

process runtime.exec(명령어)를 이용하여 터미널처럼 Text로 뿌려주는 app제작 중입니다.

EditText로 입력받은 문자를 TextView로 뿌려주고 있는데

"ls" 등 몇몇 명령어는 잘 출력되지만 "cd" 등 다른 명령어들이 먹히지 않고 있습니다.

 잘못된 명령어 입력 시 리눅스 터미널 창에서 오류메시지가 뜨지 않고

공백 창으로 되는데....

 

잘못된 부분이나 해결할 수 있는 문제점 좀 알려주시면 감사하겠습니다.

목적은 busybox hdparm를 실행하기 위해서 입니다 ㅜㅜ

 

 

package kr.co.example.gen4_cmd;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;



public class MainActivity extends Activity {
 
 EditText editText1;
 Button button1;
 String cmd, string_error, string_ok;
 TextView textview1;
 TextView textview2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
   
   
   editText1 = (EditText) findViewById(R.id.editText1); //입력 class 연결
   button1 = (Button) findViewById(R.id.button1); //버튼 class 연결
   textview1 = (TextView) findViewById(R.id.textview1);
  

   button1.setOnClickListener(new View.OnClickListener() {
  
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
      
   Runtime runtime = Runtime.getRuntime();
   Process process;    
   try  {   
    cmd = editText1.getText().toString(); //입력된 텍스트 String 저장   
    process = runtime.exec(cmd);  
    BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));   
    String line = "";  
    StringBuffer sb = new StringBuffer();
    
    while ((line = br.readLine()) != null) {
    sb.append(" % " + line + "\n");
    }
            
      textview1.setText(sb);
      br.close();
       
     } 
     
     catch (Exception e) {  
      e.fillInStackTrace();
      Log.e("Process Manager", "Unable to execute top command");
      textview2 = (TextView) findViewById(R.id.textview2);
      textview1.setText(string_error);
      string_error = "command error";
      textview2.setText(string_error);
      
     }  
   }
  }); 
 }
}

 

YoSiRo (140 포인트) 님이 2013년 4월 22일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...