我想掃描logcat活動和帖子和事件,如果我找到我想要的文本。我想在這裏的做法:如何根據找到的文本掃描logcat輸出併發布事件?
,但我想知道如何以我在日誌中找到,如張貼事件使另一個對象可以處理它反應。
我想掃描logcat活動和帖子和事件,如果我找到我想要的文本。我想在這裏的做法:如何根據找到的文本掃描logcat輸出併發布事件?
,但我想知道如何以我在日誌中找到,如張貼事件使另一個對象可以處理它反應。
獲取所提供的答案中發佈的所有日誌消息的字符串。然後,只需使用正則表達式搜索字符串即可。
例如,
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);
}
}
}
其中TriggerPhrase是一個簡單的類,有一個字符串短語成員變量和實現的回調函數的對象。
public static class TriggerPhrase implements TriggerListener{
String phrase;
TriggerListener callback;
}
public interface TriggerListener{
public void onTriggerPhrase();
}
然後你開始聽日誌之前,填充在logcat的聽者triggerPhrases List
。
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.
我正在尋找更多有關事件提升部分的細節。我需要知道如何爲其正在查找的文本另存對象註冊,以及如何通知它已被找到。 – gonzobrains 2013-05-07 22:42:43
@gonzobrains給了很多更多的細節 – you786 2013-05-08 00:46:34
我現在會試試這個。有沒有什麼特別的我需要做的,以便從我的應用程序啓動的地步獲取logcat信息,而且什麼都沒有? – gonzobrains 2013-05-08 01:11:25
你必須更具體地說明你想做什麼。你打算讓掃描運行一次嗎?你是否希望它一直在運行(更復雜)? – you786 2013-05-07 22:08:19
我想在後臺連續運行它,掃描我想要的子字符串,然後在找到它們時發佈事件。 – gonzobrains 2013-05-07 22:40:36