android获取外置SD卡的路径
2016-03-31 23:47
411 查看
手机或平板,有内置SD卡和拓展的外置SD卡:
内置的路径为:
String sdcard_Path = Environment.getExternalStorageDirectory().getName();
外置的路径有点麻烦:
/**
* 外置SD卡的路径:exSd_Path
*/
public static String getDefaultExternalStoragePath() {
String exSd_Path = "";
String [] exPaths = new StorageList(MainActivity.contexts).getVolumePaths();
if (exPaths.length > 1) {
exSd_Path = exPaths[1];
}
return exSd_Path;
}
/*/mnt/sdcard
/mnt/extsd
/mnt/usbhost1*/
public class StorageList {
private Context mContext;
private Method method;
private StorageManager storageManager;
@SuppressLint("InlinedApi")
public StorageList(Context contexts) {
mContext = contexts;
if (mContext != null) {
storageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
try {
method = storageManager.getClass().getMethod("getVolumePaths", new Class[0]);
} catch (Exception e) {
}
}
}
public String[] getVolumePaths() {
String[] paths = null;
try {
paths = (String[]) method.invoke(storageManager, new Object[0]);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return paths;
}
}
内置的路径为:
String sdcard_Path = Environment.getExternalStorageDirectory().getName();
外置的路径有点麻烦:
/**
* 外置SD卡的路径:exSd_Path
*/
public static String getDefaultExternalStoragePath() {
String exSd_Path = "";
String [] exPaths = new StorageList(MainActivity.contexts).getVolumePaths();
if (exPaths.length > 1) {
exSd_Path = exPaths[1];
}
return exSd_Path;
}
/*/mnt/sdcard
/mnt/extsd
/mnt/usbhost1*/
public class StorageList {
private Context mContext;
private Method method;
private StorageManager storageManager;
@SuppressLint("InlinedApi")
public StorageList(Context contexts) {
mContext = contexts;
if (mContext != null) {
storageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
try {
method = storageManager.getClass().getMethod("getVolumePaths", new Class[0]);
} catch (Exception e) {
}
}
}
public String[] getVolumePaths() {
String[] paths = null;
try {
paths = (String[]) method.invoke(storageManager, new Object[0]);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return paths;
}
}
相关文章推荐
- Android开发学习笔记《一》
- Android四大组件
- Android竖屏模式实现横屏效果
- 关于Android布局优化(二)
- Android 中在一个程序中启动另一程序
- android软键盘弹出引起的各种不适终极解决方案
- Android性能优化-缓存的使用
- android音视频采集参考
- Recylerview 加载更多功能实现(分页加载)
- 简介好看的anroid自定义日历控件,源码
- ListView优化之图片的三级缓存(LruCache)
- Android 中Fragment与Activity通信大汇总
- Android调试,The selected device is incompatible
- android开发之Service的使用
- Android的基本世界观——系统简介,组件逻辑及其他
- Android 多线程文件断点下载器实现(造轮子系列)(一)
- android中的线程池学习笔记
- 绘图机制ColorMatrix
- Android的基本世界观——系统简介,组件逻辑及其他
- Android Studio Jni环境配置 - 记录