0

我需要从用户那里获取整数输入(来自 EditText 数字)以使其进入命令行,但是如果我将 cmd 行更改为(“echo 255 > ... ") 它可以工作,但是如果我尝试放置用户输入而不是 255 它不会。

这是代码。

public class main extends Activity  {

EditText value;
int uin;



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    value = (EditText) findViewById(R.id.editText2);

    try {
        Process process = Runtime.getRuntime().exec("su");
    DataOutputStream os = new  DataOutputStream(process.getOutputStream());
     {
       os.writeBytes("mount -o rw,remount -t yaffs2  /dev/block/mtdblock03 /system\n" +
               "exit \n");
       os.flush();
    process.waitFor();
    }

    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    //Button OK

    Button bOK = (Button) findViewById(R.id.bOK);
    bOK.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            uin = Integer.parseInt(value.getText().toString());

            Process process = null;
            try {
                process = Runtime.getRuntime().exec("su");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            DataOutputStream os = new 

      DataOutputStream(process.getOutputStream());
            try {
                os.writeBytes("chmod 644 sys/class/leds/button-backlight/brightness\n");
                os.writeBytes("echo" +uin+ "> sys/class/leds/button-backlight/brightness\n");
                os.writeBytes("chmod 444 sys/class/leds/button-backlight/brightness\n");
                os.writeBytes("exit\n");
                os.flush();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
4

1 回答 1

0

我的第一个猜测是你的空间不足。

如果可行echo 255 > ...,那就太好了,但是使用 将+字符串连接在一起不会添加隐含空格,因此echo255> sys/class...如果 uin = 255,您的代码当前将生成。换句话说,请尝试:

os.writeBytes("echo " +uin+ " > sys/class/leds/button-backlight/brightness\n");

高温高压

于 2012-05-04T18:06:23.853 回答