posm / OpenMapKitAndroid

http://openmapkit.org
BSD 3-Clause "New" or "Revised" License
128 stars 38 forks source link

Store / Load Filles in External SD Card By Default #135

Open hallahan opened 8 years ago

hallahan commented 8 years ago

Interestingly, there is no way to do this in the Android SDK, and Stack Overflow has been misleading.

However, I found the VLC app on Github that does access the SD card, and I found code that lets me do it. I implemented those util functions.

We need to use this and have OpenMapKit store things in the SD card by default, and fall back on standard "external" storage as secondary.

https://github.com/mapsme/omim/blob/master/android/src/com/mapswithme/maps/settings/StorageUtils.java

Also, MAPS.ME has similar code, though it's a little less reusable:

https://github.com/mapsme/omim/blob/32f28f0aa4bc7a0564e002f84d292c6dd1849eaa/android/src/com/mapswithme/maps/settings/StoragePathManager.java

When implementing #19 we should do this.

hallahan commented 8 years ago

http://stackoverflow.com/questions/15517247/how-to-create-a-directory-in-external-sd-in-android-application

hallahan commented 8 years ago

Though I'm able to access the SD card now, I'm unable to create directories in the SD card. Needs further investigation.

Continuing to use external storage until this is resolved (not SD Card).

hallahan commented 8 years ago

Also, DownloadManager.Request doesn't seem to have the ability to write to anything that isn't standard external storage.

http://developer.android.com/reference/android/app/DownloadManager.Request.html#setDestinationInExternalPublicDir(java.lang.String, java.lang.String)

softworkz commented 6 years ago

How about https://developer.android.com/reference/android/app/DownloadManager.Request#setDestinationUri(android.net.Uri)

It lets you set any target for downloading as long as

softworkz commented 6 years ago

Did you call File.getCanonicalFile() before trying to create a subfolder on the SD card..?