[mono-android] detect SD Card path?
Jonathan Pryor
jonp at xamarin.com
Thu Jun 7 18:41:06 UTC 2012
On Jun 7, 2012, at 2:26 PM, moelski wrote:
>> Let's try a different experiment: from your desktop machine, put a file into the Download directory of the SD card. Move the SD card back to your Android device, and see if the file is in /mnt/sdcard/Download. It should...
> The file can be found in : /mnt/sdcard/*external_sd*/download
It sounds like your hardware vendor (Samsung) is crazy. (Then again, they are the ones with a busted Android v2.1 install that prevents JITs from working...)
The whole point to android.os.Environment is to provide directories to external storage, yet they're making it worthless.
Case in point: Environment.GetExternalStoragePublicDirectory(Environment.DirectoryMusic) _should_ return the SD card directory that the user has access to, so that the user can sanely add music to the SD card and then have the music available to apps via the public directory. Yet on your device, the public Music directory is /mnt/sdcard/Music, NOT /mnt/sdcard/external_sd/Music, so apps will NOT see anything that the user adds.
Crazy. Absolutely crazy.
Furthermore, as your stackoverflow.com url shows, there's no public way to get the external_sd directory, because it shouldn't exist; it SHOULD be /mnt/sdcard.
In short, you are getting the SD card path, it's just that Samsung has screwed things up so that the public APIs don't work properly on your device. I foresee lots of hackish workarounds...
- Jon
More information about the Monodroid
mailing list