2012-02-29 3 views
1

アンドロイドSDK(2.2)のFileObserverについてもっと学ぶためのテストプログラムをセットアップしました。 FileObserverが "/ mnt/sdcard"を見るように設定されているとうまくいくようです。 onEvent()関数は、 "/ mnt/sdcard"の内部でファイルシステムの変更が発生したときに呼び出されます。 しかし、 "/ data"を見るようにFileObserverを変更すると、 "/ data"でファイルシステムを変更してもonEvent()関数が呼び出されなくなりました。android.os.FileObserverを使って " data"ディレクトリが動作していないのを確認します

ありがとうございました。コメントや回答ありがとうございます。

答えて

3

/data全体に読み取りアクセス権がありませんので、FileObserverは機能しません。

FileObserverを使用して、読み取りアクセス権のある狭い範囲(例:getFilesDir())を使用してください。

+0

ありがとうございました。私はディレクトリのアクセス許可には何かがあるかもしれないと推測していましたが、わかりませんでした。私のテストアンドロイドアプリは確かにrootアカウントで実行されませんでした。それはapp_68(uid = 10068)というアカウントの下で実行されました。私が "adb.exe shell"を使ってrootアクセス権を取得した場合、app_68 rootにアクセス権を与えることはできますか?もしそうなら、私のテストアプリケーションのFileObserverは "/ data"内のすべてのファイルシステムの変更を見ることができますか? – ytw

+0

実際にはディレクトリのアクセス権の問題です。私は "/ data"のディレクトリパーミッションを "rwx"に変更し、 "/ data"を見るとFileObserverのonEvent()が呼び出されるようになりました。助けてくれてありがとう、CommonsWare。 – ytw

関連する問題