这似乎很简单。
我在用 Runtime.getRuntime().exec(commandString);
我试过了
String commandString = "logcat -v raw --pid=" + PID);
Runtime.getRuntime().exec(commandString);
我试过了,但没试过 -v raw
并且还尝试(并且需要)使用 |
. 似乎什么都没用。我有一个 new BufferedReader(new InputStreamReader(p.getInputStream()));
什么也得不到。如果我不在pid上过滤,它会工作,但打印出所有命中logcat的内容,这不是很有用。
我错过了什么?
这是重要部分的全部内容。
try {
Runtime.getRuntime().exec("logcat -c").waitFor();
StringBuilder pids = new StringBuilder("");
for (int i = 0; i < PIDs.size(); i++){
pids.append(Integer.toString(PIDs.get(i)));
if (i < PIDs.size() - 1){
pids.append("|");
}
}
String commmandString = "logcat -v raw --pid=" + pids);
p = Runtime.getRuntime().exec(commmandString);
mBufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
} catch (IOException e) {} catch (InterruptedException e) {}
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
p.destroy();
};
});
mThreadAlive = true;
mLoggingThread.start();
1条答案
按热度按时间n7taea2i1#
这将帮助您将输出重定向到
InputStream
(你可以把它包起来)BufferedReader
):