使用过滤器以编程方式读取logcat

时间:2017-03-22 22:19:45

标签: java android runtime.exec

我有以下代码,但它只输出logcat的第一行“---- main of main”,其余的logcat未被捕获。

当我从命令行运行相同的“logcat -d -s myapp:I”时,它会显示几行。

        String command = "logcat -d -s myapp:I";
        Process process = Runtime.getRuntime().exec(command);


        BufferedReader bufferedReader = new BufferedReader(
            new InputStreamReader(process.getInputStream()));
        ArrayList<String> lines = new ArrayList<>();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
          Log.d(TAG, "Reading: " + line); // just prints "----beginning of main"
          lines.add(line);
        }

为什么我会获得一行输出?

1 个答案:

答案 0 :(得分:0)

首先,请注意在生产中运行logcat可能不可靠,因为这不是Android SDK的一部分。

除此之外,您只能从自己的应用程序(以及系统中的一小部分)获取日志消息,因为出于隐私和安全原因,您无权访问所有日志。