Android 如何根据找到的文本扫描logcat输出和post事件?

Android 如何根据找到的文本扫描logcat输出和post事件?,android,events,logcat,Android,Events,Logcat,如果我找到我想要的文本,我想扫描logcat活动和post和事件。我试图在这里接近: 但是我想知道如何对我在日志中发现的内容做出反应,例如发布事件以便其他对象可以处理它。获取您提到的答案中发布的所有日志消息的字符串。然后,只需使用正则表达式搜索字符串 比如说, String result = //... get the logs ... if(result.contains("trigger text i am looking for")){ myObject.raiseEvent();

如果我找到我想要的文本,我想扫描logcat活动和post和事件。我试图在这里接近:


但是我想知道如何对我在日志中发现的内容做出反应,例如发布事件以便其他对象可以处理它。

获取您提到的答案中发布的所有日志消息的字符串。然后,只需使用正则表达式搜索字符串

比如说,

String result = //... get the logs ...

if(result.contains("trigger text i am looking for")){
  myObject.raiseEvent();
}
编辑

如果您试图对logcat进行持续监视,那么这将非常困难。首先,进程可能会在没有警告的情况下关闭。因此,您需要一种方法来保持它运行,或者不断检查它是否正在运行

其次,您链接到的解决方案在这种情况下不起作用,因为它会等待调用stopLogging,然后返回记录间隔的整个日志

此外,您还必须修改该代码,使其具有要运行的触发器字及其关联回调函数的列表

while ((line = reader.readLine()) != null){
 for(int i =0; i < triggerList.size(); i++){
   TriggerPhrase trigger = triggerList.get(i);
   if(line.contains(trigger.phrase))
   {
     trigger.onTriggerPhrase(line);
   }
 } 
}
然后,在开始侦听日志之前,在LogCat侦听器中填充TriggerPasses
列表

TriggerPhrase monkeyPhrase = new TriggerPhrase();
monkeyPhrase.phrase = "monkeys";
monkeyPhrase.callback = new TriggerListener(){
  public void onTriggerPhrase(){
    notifyUser("found the phrase `monkeys` in the logcat");
  }
};
triggerPhrases.add(monkeyPhrase);
//etc.

你必须更具体地说明你想做什么。你要扫描一次吗?你想让它一直运行吗(要复杂得多)?我想在后台连续运行它,扫描我想要的子字符串,然后在找到事件时发布它们。我想了解事件引发部分的更多细节。我需要知道如何为它正在查找的文本创建另一个对象寄存器,以及如何通知它已找到它。我现在将尝试此方法。我需要做什么特别的事情才能从我的应用程序启动时获取logcat信息,而之前什么都没有?logcat-v time会这样做吗?AFAIK logcat不会显示旧消息,只是从运行流程开始。如果你想继续,我也在你的聊天室里。
TriggerPhrase monkeyPhrase = new TriggerPhrase();
monkeyPhrase.phrase = "monkeys";
monkeyPhrase.callback = new TriggerListener(){
  public void onTriggerPhrase(){
    notifyUser("found the phrase `monkeys` in the logcat");
  }
};
triggerPhrases.add(monkeyPhrase);
//etc.