How to store files in Android's cache directory?

19,836

Solution 1

Each application in Android runs under it's own user account by default, so files created by your app would not be accessible from any other app. Check out bullet point #3 at the top of this page:

http://developer.android.com/guide/topics/fundamentals.html

You could also verify this by running a shell in your emulator/device and looking at the output of ls -l.

Solution 2

But I'm not sure how to set permissions on files there because I would not be able to use Context#MODE_PRIVATE.

AFAIK, they should be private by default.

Share:
19,836
Daniel
Author by

Daniel

aka Gavin

Updated on June 17, 2022

Comments

  • Daniel
    Daniel almost 2 years

    My goal is store temporary files in the directory returned by Context#getCacheDir().

    /data/data/my.app/cache/somedir/foo.json
    

    I presume I can just use java.io apis to write files there. But I'm not sure how to set permissions on files there because I would not be able to use Context#MODE_PRIVATE.

    The filename parameter to Context#openFileOutput and Context#openFileInput cannot accept input with path delimiters. Thus they are only useful for files created in directory:

    /data/data/my.app