0
다음 코드를 사용했지만 logcat의 첫 번째 줄만 출력합니다. "---- 메인 시작", 나머지 logcat은 캡처되지 않습니다.프로그래밍 방식으로 필터를 사용하여 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);
}
왜 한 줄의 출력이 나옵니까?
프로덕션 앱이 아니며 디버깅 용도로 사용됩니다. 어느 쪽이든 당신의 대답은 대답이 아닙니다. – Taranfx
@Taranfx : 대답입니다. 메시지를받지 못하는 이유는 프로세스가 가져 오지 못하는 메시지에 대한 권한이 없기 때문입니다. 이것은 [거의 5 년 동안] (https://commonsware.com/blog/2012/07/12/read-logs-regression.html) 사례였습니다. 루팅 된 장치에서 실행중인 경우 AFAIK를 사용하여'su'를 사용하여'logcat'을 실행하고 개발 컴퓨터에서와 동일한 내용을 얻을 수 있습니다. – CommonsWare