我讀過,你不能讀取其他應用程序的日誌。此外,像應用程序鎖的應用程序不斷閱讀日誌,以查找哪些應用程序已經開始,然後呈現他們的鎖屏。他們必須完全讀取日誌。如何閱讀安卓日誌貓progamatically其他應用程序
我想爲所有應用程序讀取這樣的日誌。 I/ActivityManager(585):啓動活動:意圖{action = android.intent.action ...}
我們必須是root用戶才能讀取日誌。
我讀過,你不能讀取其他應用程序的日誌。此外,像應用程序鎖的應用程序不斷閱讀日誌,以查找哪些應用程序已經開始,然後呈現他們的鎖屏。他們必須完全讀取日誌。如何閱讀安卓日誌貓progamatically其他應用程序
我想爲所有應用程序讀取這樣的日誌。 I/ActivityManager(585):啓動活動:意圖{action = android.intent.action ...}
我們必須是root用戶才能讀取日誌。
從JellyBean開始,您可以在LogCat中使用no longer read anything,該應用程序並未將其放在那裏。
此前豆形軟糖,和豆形軟糖後爲自己的應用程序,你可以使用Runtime to execute command line arguments檢索logcat的
正如@Raghav正確地說,你可以不是從Android電子閱讀logcat的其他應用程序的4.1+但可以在Android 4.1+之前做。
要獲取日誌低於Android 4.1以上版本,請參見下面的代碼或者你可以通過這個線程https://stackoverflow.com/a/6228065/1741671
AndroidManifest.xml中
<uses-permission android:name="android.permission.READ_LOGS" />
代碼
Runtime.getRuntime().exec("logcat -c").waitFor();
Process process = Runtime.getRuntime().exec("logcat -v long *:*");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
while (true) {
String nextLine = reader.readLine();
if (!nextLine.contains("LogWatcher-D")) {
Log.w("LogWatcher-D", "See: " + nextLine);
}
// Process line
}
但應用程序像AppLock不斷讀取日誌(即他們輪詢)來查找哪些應用程序已啓動,然後顯示自己的鎖定屏幕a ctivity。他們如何在沒有閱讀日誌的情況下這麼做,或者有其他方法來確定應用是否已經啓動。
如果你真的想這樣做,那麼你可以在1-2秒內簡單地運行你的服務來查看哪些應用已經啓動的細節。
你可以這樣做,並添加權限<uses-permission android:name="android.permission.GET_TASKS"/>
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
要每隔一秒運行一次服務,我嘗試了兩件事。一個是運行一個無限循環,睡眠時間爲1秒,另一個是使用Alarm Manager每秒啓動一次服務。在第一種方法中,當我終止服務啓動的活動時,我的服務也停止了。並且我有請注意,只有當重複間隔時間超過10分鐘時,才應使用鬧鐘管理器。因此,我應該如何每秒重複一次服務。用1秒鐘的睡眠時間保持無限循環也是件好事 – amit
但應用程序,如經常和掃描器讀取日誌(即他們調查)發現哪些應用開始,然後提出自己的鎖屏活動。他們如何在沒有閱讀日誌的情況下這麼做,或者有其他方法來確定應用是否已經啓動。 – amit
第一個鏈接已經死亡,因爲它根據谷歌組鏈接到「惡意」組。 – HopefullyHelpful