How can I get the external SD card path for Android 4.0+?

前端 未结 26 3154
清歌不尽
清歌不尽 2020-11-22 04:48

Samsung Galaxy S3 has an external SD card slot, which is mounted to /mnt/extSdCard.

How can I get this path by something like Environment.getExter

26条回答
  •  时光取名叫无心
    2020-11-22 05:49

    On some devices (for example samsung galaxy sII )internal memory card mabe be in vfat. In this case use refer last code, we obtain path internal memory card (/mnt/sdcad) but no external card. Code refer below solve this problem.

    static String getExternalStorage(){
             String exts =  Environment.getExternalStorageDirectory().getPath();
             try {
                FileReader fr = new FileReader(new File("/proc/mounts"));       
                BufferedReader br = new BufferedReader(fr);
                String sdCard=null;
                String line;
                while((line = br.readLine())!=null){
                    if(line.contains("secure") || line.contains("asec")) continue;
                if(line.contains("fat")){
                    String[] pars = line.split("\\s");
                    if(pars.length<2) continue;
                    if(pars[1].equals(exts)) continue;
                    sdCard =pars[1]; 
                    break;
                }
            }
            fr.close();
            br.close();
            return sdCard;  
    
         } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    

提交回复
热议问题