【问题标题】:EditText user input to command line ( echo "user input here" etc. )EditText 用户输入到命令行( echo "user input here" 等)
【发布时间】:2012-05-04 17:54:28
【问题描述】:

我需要从用户那里获取整数输入(来自 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();
            }

【问题讨论】:

    标签: android android-edittext int command


    【解决方案1】:

    我的第一个猜测是你没有空格。

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

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

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多