Android获取sd卡路径
2015-06-24 18:00
441 查看
Android中包括两个sd卡路径,一个是内置sd卡路径,一个是外置sd卡路径。由于Android手机系统的可定制性,每个厂商出厂的手机系统存在差异。获取到的sd卡路径也存在差异。所有的手机都支持内置sd卡,但是并不都支持外置sd卡。
因为目前手头上只有这两个支持外置sd卡,其他型号手机没法测试。后续有机会测试的话,再更新。
内置sd路径
String sdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
外置sd卡路径
/** * 获取外置SD卡路径 * @return 路径列表 */ public static List<String> getAllExtraSdcardPath() { List<String> sdList = new ArrayList<String>(); try { Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("mount"); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); String line; BufferedReader br = new BufferedReader(isr); while ((line = br.readLine()) != null) { // 将常见的linux分区过滤掉 if (line.contains("secure") || line.contains("asec") || line.contains("system") || line.contains("cache") || line.contains("sys") || line.contains("data") || line.contains("tmpfs") || line.contains("shell") || line.contains("root") || line.contains("acct") || line.contains("proc") || line.contains("misc") || line.contains("obb")) { continue; } if (line.contains("fat") || line.contains("fuse") || line.contains("ntfs") || line.contains("extSdCard")) { String columns[] = line.split(" "); if (columns != null && columns.length > 1) { String path = columns[1]; if (path != null && !sdList.contains(path) && path.toLowerCase().contains("sd")) File file = new File(path); if (file.isDirectory()){//判断是否是文件夹 sdList.add(columns[1]); } } } } } catch (Exception e) { e.printStackTrace(); } return sdList; }
测试结果
该程序目前只在华为 GEM-703L和三星note3上测试过,测试结果为:华为
内置:/storage/emulated/0 外置:/storage/sdcard1
三星
内置:/storage/emulated/0 外置:/storage/extSdCard
因为目前手头上只有这两个支持外置sd卡,其他型号手机没法测试。后续有机会测试的话,再更新。
相关文章推荐
- Android应用Design Support Library完全使用实例
- Android 实用 知识点 总结
- android 5.0 远程开启服务学习笔记
- Android带有undo,redo功能的EditText
- Android中Sqlite应用详解
- Android详细解释键盘和鼠标事件
- Android之ExpandableListView的属性(Group不展开)
- Android中Context简介
- Android绑定源码,让参数arg0变为有效参数
- Android 数据存储与读取:SQLite
- android通过文件描述符得到文件路径
- 学习RecyclerView和CardView
- AndroidPN的学习研究(三)源码流程分析
- Android基础知识_Activity SingleTop模式示例
- 怎么把数组从android客户端传递到php服务器
- Android-SQLite商业化数据库操作
- 不翻墙更新Android 5.0 SDK
- android 页面加载自动到顶部
- Android 之 XML文件 初窥
- Android 学习笔记之如何使用SQLite数据库来保存数据...