package co.test;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class TestActivity extends Activity {
private final static String[] ARGS = { "ls", "-l" };
Button mButton;
TextView myTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.myButton);
myTextView = (TextView) findViewById(R.id.textView);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myTextView.setText(getResult());
}
});
}
public String getResult() {
ShellExecute cmdexe = new ShellExecute();
String result = "";
try {
// result = cmdexe.execute(ARGS, "/");
result = cmdexe.execute(ARGS, "/sdcard");
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
private class ShellExecute {
/*
* args[0] : shell 命令 如"ls" 或"ls -1"; args[1] : 命令执行路径 如"/" ;
*/
public String execute(String[] cmmand, String directory) throws IOException {
String result = "";
try {
ProcessBuilder builder = new ProcessBuilder(cmmand);
if (directory != null) {
builder.directory(new File(directory));
}
builder.redirectErrorStream(true);
Process process = builder.start();
// 得到命令执行后的结果
InputStream is = process.getInputStream();
byte[] buffer = new byte[1024];
while (is.read(buffer) != -1) {
result = result + new String(buffer);
}
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
}
android shell
最新推荐文章于 2023-08-30 22:29:31 发布