本文将介绍android真机环境下如何获取内置和外置SD卡路径。


测试环境:三星Note3,其他手机待测试。。。


所需权限(AndroidManifest.xml文件里)


获取路径代码(MainActivity.java文件)

package com.example.androidtest;import java.io.BufferedReader;import java.io.File;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);StringBuilder log = new StringBuilder();String inPath = getInnerSDCardPath();log.append("内置SD卡路径:" + inPath + "\r\n");List extPaths = getExtSDCardPath();for (String path : extPaths) {log.append("外置SD卡路径:" + path + "\r\n");}System.out.println(log.toString());}/** * 获取内置SD卡路径 * @return */public String getInnerSDCardPath() {          return Environment.getExternalStorageDirectory().getPath();      }/** * 获取外置SD卡路径 * @return应该就一条记录或空 */public List getExtSDCardPath(){List lResult = new ArrayList();try {Runtime rt = Runtime.getRuntime();Process proc = rt.exec("mount");InputStream is = proc.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String line;while ((line = br.readLine()) != null) {if (line.contains("extSdCard")){String [] arr = line.split(" ");String path = arr[1];File file = new File(path);if (file.isDirectory()){lResult.add(path);}}}isr.close();} catch (Exception e) {}return lResult;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

其中,line.contains("extSdCard")判断部分有待进一步验证!


打印结果:

1. 插入一张外置SD卡后

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

2. 取出外置SD卡后

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




更多相关文章

  1. Android Studio环境变量设置
  2. Android 开发环境的搭建
  3. Android开发学习 之 一、开发环境的搭建
  4. Mac 安装 Android Studio 以及 Android 开发环境配置
  5. Android 中配置adb环境变量

随机推荐

  1. 我去,你写的 switch 语句也太老土了吧
  2. 从 SQL 到 MongoDB,这一篇就够了
  3. 冬天的作为:企业如何逆境增长
  4. java获取文件路径
  5. 9种设计模式在 Spring 中的运用,记住!
  6. 内部开源的未来
  7. 终于和 null say 拜拜了,我超开心
  8. 对不起,这局我要赢!!!
  9. 想要成为一名优秀的Java程序员,你需要这8
  10. 为什么一定要和靠谱的人在一起???