One way is to parse the output of the mount command
Edit: here is the code
proc = Runtime.getRuntime().exec("mount"); BufferedReader in = new BufferedReader(new InputStreamReader(proc .getInputStream())); String line = null; while ((line = in.readLine()) != null) {
you need to parse the string line to check the file system for the SD card. I think it should work for non-root devices.
source share