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