Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read output of android process command

I am trying to get the output of android shell command 'getprop' with java since getprop() always returns null no matter what.

I tried this from developer.android.com:

        Process process = null;
    try {
        process = new ProcessBuilder()
           .command("/system/bin/getprop", "build.version")
           .redirectErrorStream(true)
           .start();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

     InputStream in = process.getInputStream();

     //String prop = in.toString();
     System.out.println(in);

     process.destroy();

However what is printed is not the output but a bunch of characters and numbers (dont have the exact output right now).

How can i get the output of the process?

Thanks!

like image 895
kevdliu Avatar asked Jun 29 '12 03:06

kevdliu


1 Answers

Is there any particular reason why you want to run the command as an external process? There is a simpler way:

String android_rel_version = android.os.Build.VERSION.RELEASE;

However, if you really want to do it via a shell command, here is the way I got it to work:

try {
      // Run the command
      Process process = Runtime.getRuntime().exec("getprop");
      BufferedReader bufferedReader = new BufferedReader(
              new InputStreamReader(process.getInputStream()));

      // Grab the results
      StringBuilder log = new StringBuilder();
      String line;
      while ((line = bufferedReader.readLine()) != null) {
          log.append(line + "\n");
      }

      // Update the view
      TextView tv = (TextView)findViewById(R.id.my_text_view);
      tv.setText(log.toString());
} catch (IOException e) {
}
like image 192
megZo Avatar answered Oct 10 '22 16:10

megZo