FileObserver を /mnt/sdcard/X の特定のディレクトリとその子孫に再帰的にフックしています。このディレクトリのコンテンツを電話自体から (ギャラリー アプリなどから) 変更すると、FileObserver の onEvent() が正しく呼び出され、すべて正常に動作します。
USB 経由でコンピューターに接続し、大容量ストレージ モードに切り替えると、コンピューター経由で同じディレクトリに対して行われたすべての変更が、FileObserver へのイベントに変換されません。USB 大容量ストレージで動作しないという FileObserver の制限はありますか?
「adb push xx /mnt/sdcard/X/xx」を試しましたが、この変更も正しく記録されます。