android内置和外置sdcard区别

今天在写项目的时候发现了一个bug,后来发现是在android不同版本上存储路径不同。

查到一个这个问题:

以前的Android(4.1之前的版本)中,SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示存储卡,而在Jelly Bean系统中修改为了“/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);

发现输出如下:

// 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是外置的,现在看来分内置和外置sdcard

又查了一下内置和外置sdcard的区别:

. 插入一张外置SD卡后

内置SD卡路径:/storage/emulated/0

外置SD卡路径:/storage/extSdCard

  1. 取出外置SD卡后

内置SD卡路径:/storage/emulated/0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容