在我的android测试项目中,我只是使用adb command
读取logcat
,
public StringBuilder log=new StringBuilder();
public String line="";
public String temp="";
public void testSolo() throws Exception {
String baseCommand = "logcat -v time";
baseCommand += " ActivityManager:I "; // Info for my app
baseCommand += " *:S "; // Silence others
try {
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(logReaderProcess.getInputStream()));
while ((line =bufferedReader.readLine()) != null) {
log.append(line); // here readLine() returns null
}
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
但是,在string line
中,我总是得到空值,
,而同样的事情总是运行在android activity's onCreate()
。我不明白为什么会这样?
同样的东西运行在活动类,而不是在android测试项目。
我还在测试项目的READ_LOGS
和WRITE_EXTERNAL_STORAGE
中添加了使用权限manifest.xml
文件。
有谁知道它是怎么工作的或者发生了什么吗?
提前感谢。
尝试添加
<uses-permission android:name="android.permission.READ_LOGS" />
String []baseCommand = new String[]{"logcat", "-v","time"};
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);
try this out