I want to download some files and save them into the internal storage of the phone/tab. Tried on Samsung Galaxy Note 2 and Galaxt Tab 10.1. When I use /storage/sdcard0
When I use /storage/sdcard0/ on them the code runs successfully but when I use Galaxy Nexus 3 the code fails.
/storage/sdcard0/
is not internal storage. It is external storage.
(BTW, since there is no device named "Galaxy Nexus 3", I am assuming that you simply meant "Galaxy Nexus")
To find locations on internal storage for your app, use getFilesDir()
, called on any Context
(such as your Activity
, to get a File
object.
To get a location on external storage unique for your app, use getExternalFilesDir()
, called on any Context
(such as your Activity
, to get a File
object.
To get a standard location on external storage for common types of files (e.g., movies), use getExternalStoragePublicDirectory()
on Environment
.
To get the root of external storage, use getExternalStorageDirectory()
on Environment
. This, however, is considered sloppy programming nowadays, as it encourages developers to just put files in random locations.
why can't you use Environment.getExternalStorageDirectory()
for getting /storage/sdcard0/
path from code ?
need to add permissions as well
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
The solution found is 1st edit the emulator:
It worked for me, the app is no longer giving an error and is working fine.