0

FileObserver を /mnt/sdcard/X の特定のディレクトリとその子孫に再帰的にフックしています。このディレクトリのコンテンツを電話自体から (ギャラリー アプリなどから) 変更すると、FileObserver の onEvent() が正しく呼び出され、すべて正常に動作します。

USB 経由でコンピューターに接続し、大容量ストレージ モードに切り替えると、コンピューター経由で同じディレクトリに対して行われたすべての変更が、FileObserver へのイベントに変換されません。USB 大容量ストレージで動作しないという FileObserver の制限はありますか?

「adb push xx /mnt/sdcard/X/xx」を試しましたが、この変更も正しく記録されます。

4

1 に答える 1

1

USB 大容量ストレージで動作しないという FileObserver の制限はありますか?

USB 大容量ストレージ (Android 1.x/2.x) を介してマウントされている場合、Android では外部ストレージが機能しません。外部ストレージは、それをマウントした OS によって排他的に所有されます。FileObserverストレージがマウントされている間は、イベントを取得できません。

Android 3.0 以降は、USB 大容量ストレージの代わりにメディア転送プロトコル (MTP) を使用するためFileObserver、別の OS がそのストレージにアクセスしている場合でも、新しいバージョンの Android の外部ストレージで動作するはずです。

于 2012-04-18T18:42:35.660 に答える