有谁知道如何使用Java以编程方式获取Android设备系统日志?这与Dalvik Debug Monitor下面板上的内容类似。
提前致谢。
答案 0 :(得分:3)
未经测试'adb shell logcat',但我用它来通过adb获取其他内容:
public static String[] getAdbLogCat() {
try {
Process p = Runtime.getRuntime().exec("/path/to/adb shell logcat");
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
final StringBuffer output = new StringBuffer();
String line;
ArrayList<String> arrList = new ArrayList<String>();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
return (String[])arrList.toArray(new String[0]);
} catch (IOException e) {
System.err.println(e);
e.printStackTrace();
return new String[]{};
}
}
答案 1 :(得分:0)
我从上面的Mathias Conradt的回答开始。它对我不起作用,但是在使用了很长时间后,我发现需要进行哪些调整才能使其正常工作。这将起作用。它不需要root访问权限,特殊权限或其他任何条件。
private static String getAdbLogCat()
{
String log = "";
String str;
try
{
String myStringArray[]= {"logcat", "-d"};
Process process = Runtime.getRuntime().exec(myStringArray);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
str = br.readLine();
while (str != null)
{
log += str;
str = br.readLine();
}
}
catch (IOException e)
{
}
return log;
}