13

getprop() は常に null を返すため、Android シェル コマンド 'getprop' の出力を Java で取得しようとしています。

私は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();

ただし、印刷されるのは出力ではなく、一連の文字と数字です(現在、正確な出力はありません)。

プロセスの出力を取得するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

36

コマンドを外部プロセスとして実行する特定の理由はありますか? もっと簡単な方法があります:

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

ただし、本当にシェルコマンドを使用して実行したい場合は、次の方法で機能させます。

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) {
}
于 2012-11-22T06:13:59.190 に答える