2016-08-19 16 views
1

私はFileObserverの非常に単純な実装を持っているのではCREATE登録していません。私のログはseveral 1's (Access), a few 16's (close_nowrite) and a few 32's (open) when I create a file but never a 256です。FileObserverはのonEvent

私は2つのデバイス(アクティブサムスンギャラクシーS7とワンプラス二)私はここに違っ行う必要が

何にも試してみましたか?

+0

あなたはトーストをそこに表示できますか?私はそれをrunInUIThread()に入れなければなりませんでした。 else文を入れ、イベントとパスのあるトーストを表示することをお勧めします。あなたは、あなたが期待していないいくつかの出来事を見逃す可能性があります。私はDCIM /カメラにオブザーバーを置き、写真を撮った後に非常に多くのトーストを取る。 "作成されたファイル"を含む。 'パスは相対パスです:ファイル名だけです。 ' – greenapps

+0

これは問題ではありません。私はまた、私の内部にLog.d()文を入れて、それが呼び出されることはありません。私はすべてのイベントもロギングしており、CREATEのイベントコードは決して見ない。 –

+0

DCIM /カメラにもお試しいただけますか? 'Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()+"/Camera ")' – greenapps

答えて

0

私は正確な答えはありませんが、特にディレクトリやサブディレクトリを見ているときに、ドキュメントに記載されているものよりも多くのイベントコードがあります。あなたが興味を持っている場合は、何ができるか

は、あるイベントを作成、代わりに

if (event == FileObserver.CREATE) { /* do something */ } 

を求めてのそれはフラグをCREATE含まれているかどうかを尋ねる試してみてください。特に

if ((event & FileObserver.CREATE) == FileObserver.CREATE) { /* do something */} 

、これはおそらくですが、あなたの場合ではなく、ディレクトリを作成するときに、ISDIRフラグがCREATEイベントに追加されます。

誰かを助ける希望。 AndroidのFileObserverのシステムのHere is a nice descriptionはに基づいています。