如何获取其他应用的日志?

Posted

技术标签:

【中文标题】如何获取其他应用的日志?【英文标题】:How to get logs of other apps? 【发布时间】:2016-11-18 02:35:17 【问题描述】:

我想从其他应用程序读取日志并对其进行过滤,以便在记录某个关键字时,我的应用程序将执行某个任务。

我找到了几种读取日志的方法,但从我的测试中我只能得到我的应用程序日志。

这是我最初尝试使用的方法

try 
  Process process = Runtime.getRuntime().exec("logcat -d");
  BufferedReader bufferedReader = new BufferedReader(
  new InputStreamReader(process.getInputStream()));

  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) 

但它似乎只读取我的应用程序的日志。

【问题讨论】:

【参考方案1】:

只有设备root后才能读取所有应用的日志。

如果您想阅读已root设备的日志,那么this 应该可以帮助您。但是,您必须将 targetSdk 设置为 16。

【讨论】:

你有那个代码吗?这就是我要找的。​​span> 我不确定您是否完全理解 root 设备的含义。请阅读this。 我很清楚什么是根设备。我只让我的应用程序根不是问题。我只是要求您的代码读取已root设备上的系统日志。 很抱歉让您误会了。请检查编辑@Rosenpin。

以上是关于如何获取其他应用的日志?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取其他应用的通知图标?

c#如何获取其他应用程序的启动参数

android如何以编程方式仅捕获应用程序中的日志条目

c#如何获取其他应用程序的启动参数

如何获取每个应用程序的 GPS 使用情况?

如何从 iOS 系统上的进程 pid 中获取其他应用程序图标?