2014-02-18 45 views
-2

下面是爲獲取sd卡目錄而編寫的代碼。 我一直在使用命令執行並改爲讀取/ proc/mounts。 我的問題是它是否是正確的代碼?在Android設備上獲取sd卡目錄

不是Linux操作系統的專家。所有設備的/ proc/mounts路徑是否相同? 我認爲這段代碼也沒有任何命令注入的可能性。

// Process process = new ProcessBuilder().command("mount").start(); 
     // process.waitFor(); 

     reader = new BufferedReader(new FileReader("/proc/mounts")); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      // Output the line of output from the mount command 
      logger.debug(" {}", line); 

      if (line.startsWith("/dev/block/vold/")) { 
       String[] tokens = line.split(" "); 
       if (tokens.length >= 3 && (tokens[2].equals("vfat") || tokens[2].equals("exfat"))) { 
        String path = tokens[1]; 
        File file = new File(path); 
        if (file.exists() && file.isDirectory()) { 
         logger.debug("Detected SD card at {}", file.getPath()); 

         if (!file.canWrite()) { 
          logger.warn("The SD card path {} is reporting that it is not writable", file.getPath()); 
         } 

         return path; 
        } 
       } 
      } 
     } 

歡呼聲, Saurav

+0

Ÿ這麼多的活動讓Android的SD卡路徑 –

+0

Environment.getExternalStorageDirectory(); –

+0

據我所知,使用這個API將是不正確的,因爲不同的製造商會考慮不同的外部存儲。請查看http://stackoverflow.com/questions/9340332/how-can-i-get-the-list-of -mounted-external-storage-of-android-device/19982338#19982338 – saurav

回答

4

在Android上,您可以通過

Environment.getExternalStorageDirectory(); 

http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()

+0

據我所知,使用這個API將是不正確的,因爲不同的製造商會考慮外部存儲的不同。檢查此問題http://stackoverflow.com/questions/9340332 /我怎樣才能得到掛載的外部存儲的安卓設備/ 19982338#19982338 – saurav

+0

其實它是專門避免這個問題的API的 – LuigiPower

+0

也檢查在這裏http ://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0。 Envrionment.getExternalStorageDirectory()在所有情況下都不起作用 – saurav

2

得到SD卡的任何設備上的目錄,請使用

Environment.getExternalStorageDirectory();得到S的路徑D卡。

此外,使用Environment.getExternalStorageState()對屬性Environment.MEDIA_MOUNTED等,以檢查SD卡讀,安裝等:)

+0

據我所知使用這個API將是不正確的,因爲不同的製造商會考慮不同的外部存儲。請查看http://stackoverflow.com/questions/9340332/how-can-i-get-the-list-of -add-external-storage-of-android-device/19982338#19982338 – saurav

+0

我真的不確定這一點。但谷歌文檔說,這是訪問它的方法。 http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory%28%29 –

+0

也在這裏檢查http://stackoverflow.com/questions/11281010/how-can-i-get-external -sd卡路徑換機器人,4-0。 Envrionment.getExternalStorageDirectory()在所有情況下都不起作用 – saurav

相關問題