0

コマンドラインにするには、ユーザーから (EditText 数値から) 整数入力を取得する必要がありますが、コマンドラインを ( "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");

HTH

于 2012-05-04T18:06:23.853 に答える