2

I am working on an app which needs to move the files from sdcard to the flash memory .The problem is that both the flash memory and sdcard is detected by :

           (Environment.getExternalStorageDirectory())

So I cant detect whether sdcard is inserted or not . Has anyone came across the same problem please help ?

I am using Archos 7 home tablet eclair. I need to know how can I get the path for the flash memory and sdcard.

Navdroid
  • 4,453
  • 7
  • 29
  • 47

1 Answers1

1

What do you mean by:

both the flash memory and sdcard is detected by:
(Environment.getExternalStorageDirectory())

To detect whether the external storage is available, use:

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
    // External storage is available
} else {
    // External storage is NOT available
}

You can also use Environment.isExternalStorageRemovable() (watch out, Android 2.3+ only) to check whether the device has a removable SD card or a builtin one (such as the Nexus S).

Does this solve your problem?

Felix
  • 88,392
  • 43
  • 149
  • 167
  • The tablet for which I am making the app is having one unmountable 8 GB flash memory and one sdcard.So when i use the above method it gives me the path to flashmemory – Navdroid Feb 28 '12 at 13:14
  • Huh, yeah, that's a weird specimen that Android doesn't handle that well. You can try `Environment.getExternalStoragePublicDirectory()`, see if that gives you a path to the SD card. If not, you can try one of the `Environment.DIRECTORY_*` constants, depending on what you're doing. If **that** doesn't work, just give the user the option to specify a location for the files, and blame Android :) (or the tablet's vendor). – Felix Feb 28 '12 at 14:29