从我的Android应用程序中读取Android设备日志

5

我希望能够获取整个设备的日志,就像logcat显示设备中正在运行的进程一样。 我希望能够在我的Android应用程序内捕获它。


https://dev59.com/nXE85IYBdhLWcg3wNw14 - AskNilesh
可能是在应用程序中以编程方式读取logcat的重复问题。 - egorikem
这些链接只提供我的应用程序的日志。我基本上想要系统日志,以便当我设备中存在的任何其他应用程序崩溃时,我想知道它的原因和应用程序名称。 - surbhi verma
除非你已经获取了root权限或者将你的应用转化为系统应用,否则是无法获取这些信息的。因为“READ_LOGS”权限是一个系统级别的权限,详情请参考此处 - not2qubit
1个回答

4

您的应用程序需要使用权限 android.permission.READ_LOGS。(不确定是否适用于未Root的设备)。

您需要在运行时授予应用程序访问此权限:

adb shell pm grant <pkg> android.permission.READ_LOGS

或通过编程方式实现:

Runtime.getRuntime().exec("pm grant <pkg> android.permission.READ_LOGS");

然后,您可以使用shell命令获取系统日志。例如,要将logcat转储为设备上的txt文件:

Runtime.getRuntime().exec("logcat -d -f" + " /sdcard/Logcat_file.txt");

将会把日志保存在Android设备的txt文件中,进而进行进一步验证。


2
这在非root设备上不起作用,只会提供应用程序本身的日志而不是整个设备的日志。 - surbhi verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接