android內置和外置sdcard區(qū)別

今天在寫項目的時候發(fā)現(xiàn)了一個bug,后來發(fā)現(xiàn)是在android不同版本上存儲路徑不同。

查到一個這個問題:

以前的Android(4.1之前的版本)中,SDcard跟路徑通過“/sdcard”或者“/mnt/sdcard”來表示存儲卡,而在Jelly Bean系統(tǒng)中修改為了“/storage/sdcard0”,以后可能還會有多個SDcard的情況。

目前為了保持和之前代碼的兼容,sdcard路徑做了link映射。

為了使您的代碼更加健壯并且能夠兼容以后的Android版本和新的設備,請通過Environment.getExternalStorageDirectory().getPath()來獲取scared路徑,

同時測試了cooled(android 4.1.2 api16)和samsung(android 4.4.2),


String dataDirectory = Environment.getDataDirectory().toString();

String downLoadCacheDirectory = Environment.getDownloadCacheDirectory().toString();

String externalStorageDirectory = Environment.getExternalStorageDirectory().toString();

String externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory("zip").toString();

String rootDirectory = Environment.getRootDirectory().getPath();

Log.d("dir_dataDirectory",dataDirectory);

Log.d("dir_downLoadCacheDir",downLoadCacheDirectory);

Log.d("dir_externalStorage",externalStorageDirectory);

Log.d("dir_externalStoragePu",externalStoragePublicDirectory);

Log.d("dir_rootDirectory",rootDirectory);

發(fā)現(xiàn)輸出如下:

// samsung

// dir_dataDirectory: /data

// dir_downLoadCacheDir: /cache

// dir_externalStorage: /storage/emulated/0

// dir_externalStoragePu: /storage/emulated/0/zip

// dir_rootDirectory: /system

// Coolpad

// dir_dataDirectory: /data

// dir_downLoadCacheDir: /cache

// dir_externalStorage: /mnt/sdcard

// dir_externalStoragePu: /mnt/sdcard/zip

// dir_rootDirectory: /system

同時samsung的型號中沒有添加外置scared

之前一直以為sdcard是外置的,現(xiàn)在看來分內置和外置sdcard

又查了一下內置和外置sdcard的區(qū)別:

. 插入一張外置SD卡后

內置SD卡路徑:/storage/emulated/0

外置SD卡路徑:/storage/extSdCard

  1. 取出外置SD卡后

內置SD卡路徑:/storage/emulated/0

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容