获取手机和SD卡路径(Android 4.0以上验证过)
来源:互联网 发布:移动数据流量业务序号 编辑:程序博客网 时间:2024/05/22 07:55
1. android 系统内部使用
StorageManager mStorageManager = (StorageManager)getApplicationContext().getSystemService("storage");
StorageVolume[] storageVolumes = mStorageManager.getVolumeList();
for (StorageVolume volume : storageVolumes) {
if(volume.isRemovable()){
//sdcard
volume.getPath();//外部SD卡存储路径
}else if(volume.isEmulated()){
//phone
volume.getPath();//手机内部存储路径
}
}
2. 第三方使用(使用反射方式)
private void testStorage(){
StorageManager storageManager = (StorageManager)getApplicationContext().getSystemService("storage");
try {
Class<?>[] paramClasses = {};
Method getVolumeList = StorageManager.class.getMethod("getVolumeList", paramClasses);
getVolumeList.setAccessible(true);
Object[] params = {};
Object[] invokes = (Object[]) getVolumeList.invoke(storageManager, params);
if (invokes != null) {
for (int i = 0; i < invokes.length; i++) {
Object obj = invokes[i];
Method getPath = obj.getClass().getMethod("getPathFile", new Class[0]);
File file = (File)getPath.invoke(obj, new Object[0]);
if ((file.exists()) && (file.isDirectory())) {
Method isRemovable = obj.getClass().getMethod("isRemovable", new Class[0]);
Boolean is_removable = (Boolean)isRemovable.invoke(obj, new Object[0]);
Method getState = obj.getClass().getMethod("getState", new Class[0]);
String storageState = (String)getState.invoke(obj, new Object[0]);
Log.i("","path:"+file.getAbsolutePath()+",State:"+storageState+",isRemovable:"+is_removable);
if(storageState.equals("mounted") || storageState.equals("removed")){
if(is_removable){
Log.i("","外部SD卡存储路径 "+file.getAbsolutePath());
}else{
Log.i("","手机内部存储路径 "+file.getAbsolutePath());
}
}
}
}
}
} catch (NoSuchMethodException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
- 获取手机和SD卡路径(Android 4.0以上验证过)
- android 手机获取外置SD卡路径
- Android手机如何获取手机内存路径和sd卡路径
- Android手机内置SD卡路径的获取
- Android获取不同手机 自身存储和外置SD卡存储路径的解决方案
- android 获取SD卡的路径和SD卡内存
- 判断获取sd卡根目录和手机内存根路径
- 获取手机C盘路径,获取手机SD卡路径
- android 获取手机SD卡和手机的内部存储
- Android 4.0获取外置SD卡 路径
- Android判断是否存在外置SD卡(获取手机所有存储设备的路径)
- android 获取文件路径(内置sd卡和外置sd卡)。
- 获取手机外置sd卡路径
- android获取sd卡路径
- Android获取sd卡路径
- android 获取手机和SD卡可用内存
- android获取手机和sd卡上音乐列表
- Android获取手机和SD卡的存储存储信息
- 邮箱自动匹配下拉选项
- 不一样的Geek女的生活札记(1)
- grid block分配与原子加
- C语言编程 - 清空键盘缓冲区
- Asp.Net MVC4.0 官方教程 入门指南之七--增加搜索方法和视图
- 获取手机和SD卡路径(Android 4.0以上验证过)
- 进程和线程的区别
- 一步步学习微软InfoPath2010和SP2010--第十三章节--SharePoint视图和仪表板(4)--基于视图的通知
- Asp.Net MVC4.0 官方教程 入门指南之八--为Movie模型和库表添加字段
- 解决中文版Chrome浏览器不支持12px以下字体
- IOS调试方法
- 总会有一个人对你说不
- wifi共享精灵之无线网卡坏了还是被关闭了?
- Linux下GCC降低版本 gcc 4.4.6