2012-04-18 13 views
0

私はFileObserverを/ mnt/sdcard/Xの特定のディレクトリとその子孫に再帰的にフックしました。このディレクトリの内容を電話機(Galleryアプリケーションから)から変更すると、FileObserverのonEvent()が正しく呼び出され、すべて正常に動作します。AndroidのFileObserverがUSBマスストレージモードでonEventを呼び出さない

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

私は 'adb push xx/mnt/sdcard/X/xx'を試しましたが、この変更も正しく記録されています。

答えて

1

FileObserverにはUSB大容量ストレージでは機能しないという制限がありますか?アンドロイドで

何もそれはUSBマスストレージ(アンドロイド1.1/2.xの)を介して搭載されている場合は、外部記憶装置で動作します。外部ストレージは、それがマウントされているOSによって排他的に所有されています。ストレージがマウントされている間は、イベントはFileObserverになりません。

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

+0

よろしくお願いします。私はMEDIA_MOUNTEDが一旦USBストレージがオフになったらブロードキャストされていると仮定しますが、それは間違いありませんか? –

+0

@ NarendraAcharya:はい、AFAIK。 – CommonsWare

関連する問題