Зачем процессу давать нулевой входной поток в классе тестового бегуна?
В моем тестовом проекте Android я просто прочитал logcat
с помощью adb command
лайк,
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.
Я также добавляю use -permission для READ_LOGS
а также WRITE_EXTERNAL_STORAGE
в тестовом проектеmanifest.xml
файл.
Кто-нибудь знает, как это работает или что происходит?
Заранее спасибо.
2 ответа
Попробуй добавить
<uses-permission android:name="android.permission.READ_LOGS" />
к вашему манифесту.
String []baseCommand = new String[]{"logcat", "-v","time"};
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);
попробуй это