public class StorageUtils {
private static String TAG="123"; // 获取主存储卡路径 内置内存卡路径
public static String getPrimaryStoragePath(Context context) {
try { StorageManager sm = (StorageManager) context.getSystemService(context.STORAGE_SERVICE);
Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths");
String[] paths = (String[]) getVolumePathsMethod.invoke(sm);
// first element in paths[] is primary storage path
return paths[0];
} catch (Exception e) {
Log.e(TAG, "getPrimaryStoragePath() failed", e);
}
return null;
} //获取可用的所有外置内存卡路径
public static List<String> getSecondaryStoragePath(Context context) {
try {
List<String> sdPaths=new ArrayList<>();
StorageManager sm = (StorageManager) context.getSystemService(context.STORAGE_SERVICE);
Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths");
String[] paths = (String[]) getVolumePathsMethod.invoke(sm);//获取所有sd卡路径
if(paths.length>=1){
for (int i = 1; i <paths.length ; i++) {
if(getStorageState(context,paths[i])){
sdPaths.add(paths[i]);
}
}
} return sdPaths;
} catch (Exception e) {
Log.e(TAG, "getSecondaryStoragePath() failed", e);
}
return null;
} // 判断存储卡的路径是否可用
public static boolean getStorageState(Context context,String path) {
try {
StorageManager sm = (StorageManager) context.getSystemService(context.STORAGE_SERVICE);
Method getVolumeStateMethod = StorageManager.class.getMethod("getVolumeState", new Class[] {String.class});
String state = (String) getVolumeStateMethod.invoke(sm, path);
if(state.equals(Environment.MEDIA_MOUNTED_READ_ONLY)||state.equals(Environment.MEDIA_MOUNTED)){
return true;
}
return false;
} catch (Exception e) {
Log.e(TAG, "getStorageState() failed", e);
return false;
}
} }

  

最新文章

  1. Oracle以15分钟为界,统计一天内各时间段的数据笔数
  2. 【bzoj2006】 NOI2010—超级钢琴
  3. EF – 3.EF数据查询基础(下)数据关联
  4. Egit Patch
  5. 组合数学 + STL --- 利用STL生成全排列
  6. ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象
  7. (转)H264(NAL简介与I帧判断)
  8. javascript get获取参数
  9. pycharm(windows)安装及其设置中文菜单
  10. 博客志第一天——判断一个整数N是否是完全平方数?
  11. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路
  12. ES5-ES6-ES7_函数的扩展
  13. 3.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——less即more
  14. GO语言的进阶之路-网络编程之socket
  15. [原]openstack-kilo--issue(十五) WARNING keystonemiddleware.auth_token Authorization failed for token Could not find token
  16. sdram 裸机程序
  17. php可逆加密解密函数
  18. 重新生成RF的测试库API文档
  19. Linux下nginx编译安装教程和编译参数详解
  20. 116. Populating Next Right Pointers in Each Node (Tree; WFS)

热门文章

  1. datasnap的初步
  2. 关于bc 的scale .
  3. linux lcd设备驱动剖析四
  4. ASP.NET页面传值加号变空格解决办法
  5. 解决git gnutls_handshake失败
  6. 第二章 MySQL的安装与配置(待续)
  7. Flask之单元测试
  8. leetcode868
  9. Mycat实战之数据迁移(oracle -- mysql)
  10. (一)maven的安装