gpt4 book ai didi

Android:通过应用程序读取 adb logcat 日志

转载 作者:行者123 更新时间:2023-11-29 18:12:51 33 4
gpt4 key购买 nike

我正在尝试编写一个应用程序来读取由 adb logcat 创建的日志。按照 link1 上的代码和 link2 ,我有以下代码:

try {
Process process = Runtime.getRuntime().exec("logcat");
System.out.println("Process : " + process); // shows process id
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
System.out.println("Buffered reader : " + bufferedReader.readLine());
StringBuilder log = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(log.toString());
} catch (IOException e) {
}

为了测试缓冲读取器正在读取的内容,我输入了一个 println,但我收到一条消息“无法绑定(bind) tcp:5038”。上面的代码没有读取任何日志。我也尝试使用“logcat *:V”,但我没有获得最低优先级的日志。

我向我的应用授予了权限:android.permission.READ_LOGS。

我正在 Android 模拟器上测试我的代码。

谁能指出我做错了什么。

感谢您的帮助。

编辑:

我尝试了“logcat -d”并且得到了一行日志。在代码中,可以观察到提供了 try/catch block ; 当我从应用程序中删除权限 READ_LOGS 时,没有引发异常并且 bufferReader 只是打印 null(通常当应用程序找不到它需要的权限时,它会引发异常)。 这种行为的原因是什么?

编辑 2:

我尝试了 Log.d(TAG, log.toString()) 并得到了不止一行的文本。有人可以解释之前编辑的最后一个问题:当我删除所需的权限时,为什么应用程序没有引发异常?

最佳答案

您可能会收到消息“cannot bind tcp:5038”,因为没有

<uses-permission android:name="android.permission.INTERNET" />

在你的 list 中

关于Android:通过应用程序读取 adb logcat 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751143/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com