2012-04-02 128 views
1

我對android編程還是一個新東西(到目前爲止寫了一個小應用程序),我也是堆棧溢出的新手。我正在尋找能夠列出文件中變化的東西,就像文件觀察者的工作方式一樣。但問題在於,我正在查看的文件從內核接收到更改,並且我意識到,文件觀察程序似乎確實接受了更改,除非由用戶完成。謝謝。在沒有文件觀察器的情況下監聽android文件系統中的文件更改

+0

貴 「的文件觀察者」 使用'的inotify(7)'內核接口? – sarnold 2012-04-02 02:01:30

+0

您是否嘗試過並且排除了自己輪詢文件的上次修改日期? – 2012-04-02 02:22:01

+0

我知道它使用inotify,但我不知道有關內核接口或沒有..我沒有試過看修改日期。有沒有在Android中的任何事件處理程序,可以識別它何時更改? – gh123man 2012-04-02 15:08:27

回答

2

我知道這是舊的,但我想我應該發佈我找到的答案。

的解決方案是UEventObserver

DOC:(http://www.androidjavadoc.com/1.1_r1_src/android/os/UEventObserver.html

,我發現我的答案在Android的源代碼中的 「框架/基/服務/ JAVA/COM /安卓/服務器/」 區域他們會聽從內核報告的變化。

我實施解決方案是在這裏:https://github.com/gh123man/ICS_tablet_HW_rotationlock/blob/master/frameworks/base/services/java/com/android/server/RotationSwitchObserver.java

0

「的文件即時尋找在接收到來自內核修改」

如果你指的是從procfs的,或者一些其他的虛擬文件文件,我擔心的inotify不會幫助你很多...

search for "Q: Are there any limitations for use of inotify?"

問:是否有使用inotify的任何限制?
是的。某些文件系統(例如,procfs或某些網絡文件系統)在某些情況下不會發出事件 。

0

我相信沒有很好的解決方案。 FileObserver將僅報告源自用戶空間的事件 - 不報告內核發起的事件(即procfs文件)。此外,文件操作也不起作用,因此您無法檢查這些文件的散列,長度,修改日期等。

我的觀察是基於2.3.6。

相關問題