From Android Developers, we can use FileObserver to know files or folders changed on sdcard.
We usually use this to implement.
And start StorageMonitor in onCreat().
Launched application and modified files/folders on sdcard. Then I cannot see any event printed in logcat. I tried several Android Phones and versions (HTC ONE X 4.2.2, Samsung Note3 4.4.2, Google Nexus5 5.0...etc). FileObserver worked well in some Android Phones, for example, HTC ONE X 4.2.2 always passed.
Last, I try to use other constructor of FileObserver. It works for all!!