David Scott David Scott - 4 months ago 30
Android Question

Android - Internal Storage vs External Storage when App installed on SD Card

I have an app which downloads large amounts of content (it varies between users but could be 200mb to 1GB or more).

Currently I save all of this content on External Storage as this is likely to be the area with the most space, such as an SD card. This works fine for the most part however there is a situation where this isn't necessarily ideal.

If the device has in built external storage, like most tablets, but also has an SD card slot, the external storage issue gets a little complicated. The app can be installed onto the SD card, but the content will be saved on the built in storage, not the external SD card.

If the app is install on an SD card, will calling

getFilesDir()
give a path on the SD card, or the internal storage?

And what is the best way of handling this? Should I save content to the internal storage (on an sd card), the external storage or is asking the user when starting the app the best idea?

Answer

The app can be installed onto the SD card, but the content will be saved on the built in storage, not the external SD card.

No. If the device has external storage, the app will be installed to external storage. It does not matter whether the device also has an SD card.

If the app is install on an SD card, will calling getFilesDir() give a path on the SD card, or the internal storage?

getFilesDir() is always internal storage, regardless of where the app is installed.