android获取外置sd卡路径
2017-02-13 11:37
363 查看
对于获取android的外置sd卡路径纠结了好长时间,可能是我的境界还不够吧,找到了方法却不知道是什么意思,只知道是使用StorageManager,我先把获取方法贴出来,最近好好研究一下StorageManager这个类,研究完了再来补充,下面是方法:
这个方法获取的是所有可用存储的路径,其中path[0]是内置存储路径,path[1]是外置存储路径。
补充:经过一段时间的研究总算搞懂这个方法了,其实很简单,就是StorageManager中有一个方法可以获取所有可用存储的集合,但是这个方法是@hide的,也就是外部不能访问这个方法,所以上面的方法就是通过反射调用这个方法从而获取路径。
关于反射不懂的看我的另一篇文章: android中反射的应用
我又来补充了,一次偶然的机会,我看了api文档中的关于存储的介绍,主要内容就是
在api24中增加了一个类 StorageVolume专门用来管理存储目录的,而且在StorageManager中也新增了一个方法StorageManager.getStorageVolumes()。可以直接获取所有外部存储目录,但要注意的api24才能使用,可怜我的手机也才是api23;
还有就是关于getExternalFilesDirs()这个方法,我们都知道getExternalFilesDir()这个方法可以获取应用私有文件的保存路径,而getExternalFilesDirs()可以返回应用私有文件的保存路径数组,如果你的手机中插入内存卡,就可以得到内存卡的路径,
注意:在这里保存的文件在应用卸载后会删除
另外再说一下getExternalCacheDirs()这个方法,这个是应用缓存数据的路径,在这里保存的数据会被清理垃圾时清理掉,同样他可以返回应用缓存文件的保存路径数组
public String[] getStoragePath() { try { StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE); Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths", (Class<?>[]) null); String[] paths = (String[]) getVolumePathsMethod.invoke(sm, (Object[]) null); return paths; } catch (Exception e) { Log.e("info", "getStoragePath() failed", e); } return null; }
这个方法获取的是所有可用存储的路径,其中path[0]是内置存储路径,path[1]是外置存储路径。
补充:经过一段时间的研究总算搞懂这个方法了,其实很简单,就是StorageManager中有一个方法可以获取所有可用存储的集合,但是这个方法是@hide的,也就是外部不能访问这个方法,所以上面的方法就是通过反射调用这个方法从而获取路径。
关于反射不懂的看我的另一篇文章: android中反射的应用
我又来补充了,一次偶然的机会,我看了api文档中的关于存储的介绍,主要内容就是
在api24中增加了一个类 StorageVolume专门用来管理存储目录的,而且在StorageManager中也新增了一个方法StorageManager.getStorageVolumes()。可以直接获取所有外部存储目录,但要注意的api24才能使用,可怜我的手机也才是api23;
还有就是关于getExternalFilesDirs()这个方法,我们都知道getExternalFilesDir()这个方法可以获取应用私有文件的保存路径,而getExternalFilesDirs()可以返回应用私有文件的保存路径数组,如果你的手机中插入内存卡,就可以得到内存卡的路径,
File[] file=getExternalFilesDirs(null);
注意:在这里保存的文件在应用卸载后会删除
另外再说一下getExternalCacheDirs()这个方法,这个是应用缓存数据的路径,在这里保存的数据会被清理垃圾时清理掉,同样他可以返回应用缓存文件的保存路径数组
File[] files=getExternalCacheDirs();
相关文章推荐
- android获取内置和外置SD卡路径
- android 获取文件路径(内置sd卡和外置sd卡)。
- Android中获取内置SD卡和外置SD卡路径的方法
- android 获取外置SD卡的路径(非挫版)
- Android N获取外置SD卡或挂载U盘路径
- Android 4.0获取外置SD卡 路径
- android 获取外置SD卡的路径(非挫版)
- android获取内置和外置SD卡路径 - z
- Android学习之获取外置SD卡读写路径方法详解
- Android 内部存储(外置SD卡)和扩展存储卡(TF卡)路径的获取
- 获取android 内置与外置SD卡路径及可用空间
- android 获取外置SD卡的路径(非挫版)
- android获取外置SD卡的路径
- Android判断是否存在外置SD卡(获取手机所有存储设备的路径)
- android获取内置和外置SD卡路径
- android 手机获取外置SD卡路径
- android获取内置和外置SD卡路径
- Android4.4+ 外置SD卡不能写入 获取外置SD卡路径解决方案
- Android开发获取多个存储空间的路径(内置SD卡以及外置SD卡)
- Android获取拓展外置SD卡(可插拔)路径及读写外置SD卡的方法