Android Environment 类详解
Android应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,
并且需要在AndroidManifest.xml文件中添加外部存储读和写的权限。
根据官方API文档,接下来对android.os.Environment类做详细介绍。
一、Environment类中提供了多个String类型的静态常量用于标识外部存储媒体的状态。
public
static final String MEDIA_BAD_REMOVAL 在解除挂载前存储媒体已经被移除,常量值为“bad_removal”public static final String MEDIA_CHECKING 存储媒体存在并在进行磁盘检查,常量值为“checking”
public
static final String MEDIA_MOUNTED 存储媒体已经挂载,并且挂载点可读/写,常量值为“mounted”public
static final String MEDIA_MOUNTED_READ_ONLY 存储媒体已经挂载,挂载点只读,常量值为“mounted_ro”public static final String MEDIA_NOFS 存储媒体存在,但空白或使用了不支持的文件系统,常量值“nofs”
public
static final String MEDIA_REMOVED 存储媒体不存在即被移除,常量值为“removed”public static final String MEDIA_SHARED 存储媒体正在通过USB共享,常量值为“shared”
public static final String MEDIA_UNMOUNTABLE 存储媒体无法挂载,一种典型状况是文件系统损坏,常量值为“unmountable”
public static final String MEDIA_UNMOUNTED 存储媒体没有挂载,常量值为“unmounted”
public static final String MEDIA_UNKNOWN未知存储状态,例如不支持的存储路径,常量值为“unknown”
public static final String MEDIA_EJECTING
存储媒体正在卸载过程中,常量值为“ejecting”注:以上存储媒体的状态均可通过方法getExternalStorageState()获得。
二、Environment类中的数据域提供了Android标准目录的路径,以static string类型提供。
public static String DIRECTORY_ALARMS 系统提醒铃声(闹铃、警报...)存放的标准目录。
public static String DIRECTORY_DCIM 相机拍摄照片和视频的标准目录。
public
static String DIRECTORY_DOCUMENTS 存放用户文件的标准目录。public static String DIRECTORY_DOWNLOADS 存放用户下载内容的标准目录。
public static String DIRECTORY_MOVIES 电影存放的标准目录。
public static String DIRECTORY_MUSIC 音乐存放的标准目录。
public static String DIRECTORY_NOTIFICATIONS 系统通知铃声存放的标准目录。
public static String DIRECTORY_PICTURES 图片存放的标准目录。
public static String DIRECTORY_PODCASTS 系统广播存放的标准目录。
public static String DIRECTORY_RINGTONES 系统铃声存放的标准目录。
三、构造器(constructor)
public Environment()
四、公有方法(public methods)
public static File getDataDirectory ()
获得user data的目录
public static File getDownloadCacheDirectory ()
获得下载缓存内容的目录
public static File getExternalStorageDirectory ()
获得基本的共享或外部存储器目录。注:可以通过调用getExternalStorageState()方法类判断共享或外部存储器当前状态,从而得知其是否可以被访问。
public static File getExternalStoragePublicDirectory (String type)
获得用于存储特定类型文件的顶层共享或外部存储器目录。
public static String getExternalStorageState ()
获得外部存储器的当前状态。
返回值为 MEDIA_UNKNOWN,MEDIA_REMOVED,MEDIA_UNMOUNTED,MEDIA_CHECKING,MEDIA_NOFS, MEDIA_MOUNTED,MEDIA_MOUNTED_READ_ONLY,MEDIA_SHARED,MEDIA_BAD_REMOVAL,MEDIA_UNMOUNTABLE其中之一。
public static String getExternalStorageState (File path)
获得共享或外部存储器在给定路径的当前状态
public static File getRootDirectory ()
获得存储Android OS内核的系统分区的根目录,退出为只读的。
public static String getStorageState (File path)
API 21中弃用,代替使用getExternalStorageState(File path)
public static boolean isExternalStorageEmulated ()
......
public static boolean isExternalStorageEmulated (File path)
....
public static boolean isExternalStorageRemovable (File path)
判断共享或外部存储媒体在给定的路径是否是可移除的。
return true 如果存储设备可以被移除(eg:SD card)
return false 如果存储设备是内置存储器或其他不可移除的设备
public static boolean isExternalStorageRemovable ()
判断基本的共享或外部存储媒体是否是可移除的。
return true 如果存储设备可以被移除(eg:SD card)
return false 如果存储设备是内置存储器或其他不可移除的设备
Android Environment 类详解的更多相关文章
- Android游戏开发之旅 View类详解
Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...
- Android Studio 插件开发详解二:工具类
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112856 本文出自[赵彦军的博客] 在插件开发过程中,我们按照开发一个正式的项 ...
- Android SDK Manager详解
Android基础知识——Android SDK Manager详解 做Android开发时,免不了使用Android SDK Manager,安装需要的sdk版本.buildTools版本等等. ...
- Android中Context详解 ---- 你所不知道的Context(转)
Android中Context详解 ---- 你所不知道的Context(转) 本文出处 :http://b ...
- Android之canvas详解
首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...
- Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 在前面我介绍了插件开发的基本流程 [And ...
- Android Studio 插件开发详解三:翻译插件实战
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 一:概述 如果不了解插件开发基础的同学可以 ...
- Android Studio 插件开发详解一:入门练手
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自[赵彦军的博客] 一:概述 相信大家在使用Android S ...
- URLConnection类详解-转
转-http://www.cnblogs.com/shijiaqi1066/p/3753224.html 1. URLConnection概述 URLConnection是一个抽象类,表示指向URL指 ...
随机推荐
- HTML5 增强的页面元素
一.HTML5 改良的 input 元素的种类 1.<input type="number" id="num1"> var n1 = documen ...
- 基于Spring设计并实现RESTful Web Services(转)
基于Spring设计并实现RESTful Web Services 在本教程中,你将会使用Spring来创建一个具有生产力的RESTful网络服务. 为什么用RESTful网络服务? 从和Amazon ...
- GridView 和ListView中自适应高度
android中GridView 和ListView放在scrollView中时会默认的只有一行高这时就要我们自己计算出它的高度啦 首先是listview的 //动态设置listview的高度 pu ...
- SPOJ 1108 Card Trick 暴力模拟
解释一下样例,因为我觉得这个题意表述的不是很清楚.以第二组样例为例. 牌序为:3 1 4 5 2 第一轮:把 3 放到末尾:1 4 5 2 3,最顶上的牌是1,把1拿走.剩余 4 5 2 3 第二轮: ...
- Checked&Unchecked Exception
Java 中定义了两类异常: 1) Checked exception: 这类异常都是Exception的子类 .异常的向上抛出机制进行处理,如果子类可能产生A异常,那么在父类中也必须throws A ...
- linux源码Makefile详解
1.Makefile的作用 (1)决定编译哪些文件 (2)怎样编译这些文件 (3)怎样连接这些文件,最重要的是它们的顺序如何 2.Linux内核Makefile分类 ***************** ...
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决办法
刚刚更新AS到2.0版本,然后导入Api Demos的时候出现了这个错误. 解决办法:在AS的菜单栏,Tools->Android ->Enable ADB integration 勾选就 ...
- NYOJ 536 开心的mdd【矩阵链乘】
题意:给出n个矩阵组成的序列,问最少的运算量 看的紫书: dp[i][j]表示从第i个矩阵到第j个矩阵最少的乘法次数 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j] ...
- 证明:寝室分配问题是NPC问题
P.NP.NPC.NP-hard P:多项式时间能够解决的问题的集合,比如最短路径问题是集合P的一个元素,而最短路径问题本身又是一个集合,因此P是集合的集合. NP:多项式时间内能够验证的问题的集合. ...
- 物联网操作系统HelloX应用编程指南
HelloX操作系统应用编程指南 HelloX应用开发概述 可以通过三种方式,在HelloX操作系统基础上开发应用: 1. 以内部命令方式实现应用,直接编译链接到HelloX的内核she ...