- 浏览: 309639 次
- 性别:
- 来自: 山西太原
文章分类
最新评论
-
A741841403:
core-renderer-CN.jar这个包是怎么引入的啊, ...
flying saucer 中文不显示、以及中文换行的问题解决 -
A741841403:
您好,能提供下,中文字体换行包的jar文件吗
flying saucer 中文不显示、以及中文换行的问题解决 -
nightw13h:
楼主 我也遇到了这个问题 照你的套路也把问题解决了 当时没 ...
maven 单元测试 Absent Code attribute in method that is not native or abstract in cl -
devilyard:
借地请教个问题:fatal: open /dev/null o ...
msysGit 安装后的配置 -
tiancai2:
如果在action中定义不是string类型的,而是一个Per ...
Struts2 、jquery之ajaxfileupload异步上传插件
android.os.Environment
提供访问环境变量
java.lang.Object | ||
android.os.Environment |
Environment 静态方法:
方法 : getDataDirectory ()
返回 : File
解释 : 返回Data的目录
方法 : getDownloadCacheDirectory ()
返回 : File
解释 : 返回下载缓冲区目录
方法 : getExternalStorageDirectory ()
返回 : File
解释 : 返回扩展存储区目录(SDCard)
方法 : getExternalStoragePublicDirectory (String type)
返回 : File
解释 : 返回一个高端的公用的外部存储器目录来摆放某些类型的文件(来自网上)
方法 : getRootDirectory ()
返回 : File
解释 : 返回Android的根目录
方法 : getExternalStorageState ()
返回 : String
解释 : 返回外部存储设备的当前状态
getExternalStorageState () 返回的状态String 类型常量 :
常量 : MEDIA_BAD_REMOVAL
值 : "bad_removal"
解释 : 在没有正确卸载SDCard之前移除了
常量 : MEDIA_CHECKING
值 : "checking"
解释 : 正在磁盘检查
常量 : MEDIA_MOUNTED
值 : "mounted"
解释 : 已经挂载并且拥有可读可写权限
值 : "mounted_ro"
解释 : 已经挂载,但只拥有可读权限
常量 : MEDIA_NOFS
值 : "nofs"
解释 : 对象空白,或者文件系统不支持
常量 : MEDIA_REMOVED
值 : "removed"
解释 : 已经移除扩展设备
常量 : MEDIA_SHARED
值 : "shared"
解释 : 如果SDCard未挂载,并通过USB大容量存储共享
常量 : MEDIA_UNMOUNTABLE
值 : "unmountable"
解释 : 不可以挂载任何扩展设备
常量 : MEDIA_UNMOUNTED
值 : "unmounted"
解释 : 已经卸载
使用时只需先判断SDCard当前的状态然后取得SdCard的目录即可(见源代码)
- //SDcard 操作
- ublic void SDCardTest() {
- // 获取扩展SD卡设备状态
- String sDStateString = android.os.Environment.getExternalStorageState();
- // 拥有可读可写权限
- if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) {
- try {
- // 获取扩展存储设备的文件目录
- File SDFile = android.os.Environment
- .getExternalStorageDirectory();
- // 打开文件
- File myFile = new File(SDFile.getAbsolutePath()
- + File.separator + "MyFile.txt");
- // 判断是否存在,不存在则创建
- if (!myFile.exists()) {
- myFile.createNewFile();
- }
- // 写数据
- String szOutText = "Hello, World!";
- FileOutputStream outputStream = new FileOutputStream(myFile);
- outputStream.write(szOutText.getBytes());
- outputStream.close();
- } catch (Exception e) {
- // TODO: handle exception
- }// end of try
- }// end of if(MEDIA_MOUNTED)
- // 拥有只读权限
- else if (sDStateString
- .endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) {
- // 获取扩展存储设备的文件目录
- File SDFile = android.os.Environment.getExternalStorageDirectory();
- // 创建一个文件
- File myFile = new File(SDFile.getAbsolutePath() + File.separator
- + "MyFile.txt");
- // 判断文件是否存在
- if (myFile.exists()) {
- try {
- // 读数据
- FileInputStream inputStream = new FileInputStream(myFile);
- byte[] buffer = new byte[1024];
- inputStream.read(buffer);
- inputStream.close();
- } catch (Exception e) {
- // TODO: handle exception
- }// end of try
- }// end of if(myFile)
- }// end of if(MEDIA_MOUNTED_READ_ONLY)
- // end of func
//SDcard 操作 public void SDCardTest() { // 获取扩展SD卡设备状态 String sDStateString = android.os.Environment.getExternalStorageState(); // 拥有可读可写权限 if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) { try { // 获取扩展存储设备的文件目录 File SDFile = android.os.Environment .getExternalStorageDirectory(); // 打开文件 File myFile = new File(SDFile.getAbsolutePath() + File.separator + "MyFile.txt"); // 判断是否存在,不存在则创建 if (!myFile.exists()) { myFile.createNewFile(); } // 写数据 String szOutText = "Hello, World!"; FileOutputStream outputStream = new FileOutputStream(myFile); outputStream.write(szOutText.getBytes()); outputStream.close(); } catch (Exception e) { // TODO: handle exception }// end of try }// end of if(MEDIA_MOUNTED) // 拥有只读权限 else if (sDStateString .endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) { // 获取扩展存储设备的文件目录 File SDFile = android.os.Environment.getExternalStorageDirectory(); // 创建一个文件 File myFile = new File(SDFile.getAbsolutePath() + File.separator + "MyFile.txt"); // 判断文件是否存在 if (myFile.exists()) { try { // 读数据 FileInputStream inputStream = new FileInputStream(myFile); byte[] buffer = new byte[1024]; inputStream.read(buffer); inputStream.close(); } catch (Exception e) { // TODO: handle exception }// end of try }// end of if(myFile) }// end of if(MEDIA_MOUNTED_READ_ONLY) }// end of func
计算SDCard的容量大小
android.os.StatFs
一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
java.lang.Object | |
android.os.StatFs |
构造方法:
公用方法:
方法 : getAvailableBlocks ()
返回 : int
解释 :返回文件系统上剩下的可供程序使用的块
方法 : getBlockCount ()
返回 : int
解释 : 返回文件系统上总共的块
方法 : getBlockSize ()
返回 : int
解释 : 返回文件系统 一个块的大小单位byte
方法 : getFreeBlocks ()
返回 : int
解释 : 返回文件系统上剩余的所有块 包括预留的一般程序无法访问的
返回 : void
解释 : 执行一个由该对象所引用的文件系统雷斯塔特.(Google翻译)
想计算SDCard大小和使用情况时, 只需要得到SD卡总共拥有的Block数或是剩余没用的Block数,再乘以每个Block的大小就是相应的容量大小了单位byte.(见代码)
- public void SDCardSizeTest() {
- // 取得SDCard当前的状态
- String sDcString = android.os.Environment.getExternalStorageState();
- if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
- // 取得sdcard文件路径
- File pathFile = android.os.Environment
- .getExternalStorageDirectory();
- android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());
- // 获取SDCard上BLOCK总数
- long nTotalBlocks = statfs.getBlockCount();
- // 获取SDCard上每个block的SIZE
- long nBlocSize = statfs.getBlockSize();
- // 获取可供程序使用的Block的数量
- long nAvailaBlock = statfs.getAvailableBlocks();
- // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)
- long nFreeBlock = statfs.getFreeBlocks();
- // 计算SDCard 总容量大小MB
- long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024;
- // 计算 SDCard 剩余大小MB
- long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024;
- }// end of if
- // end of func
public void SDCardSizeTest() { // 取得SDCard当前的状态 String sDcString = android.os.Environment.getExternalStorageState(); if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) { // 取得sdcard文件路径 File pathFile = android.os.Environment .getExternalStorageDirectory(); android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath()); // 获取SDCard上BLOCK总数 long nTotalBlocks = statfs.getBlockCount(); // 获取SDCard上每个block的SIZE long nBlocSize = statfs.getBlockSize(); // 获取可供程序使用的Block的数量 long nAvailaBlock = statfs.getAvailableBlocks(); // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块) long nFreeBlock = statfs.getFreeBlocks(); // 计算SDCard 总容量大小MB long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024; // 计算 SDCard 剩余大小MB long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024; }// end of if }// end of func
主要:
在判断SDCard的状态为MEDIA_MOUNTED后,仅是说明硬件已经准备好可读可写
如果想叫你的程序也可写的话,还需要在工程的XML文件中加上操作扩展存储设备的权限
方法:
在 XML文件中 Permissions 标签中 点击Add 添加 Uses Permission 名字选择
android.permission.WRITE_EXTERNAL_STORAGE
或者直接在xml文件中添加下面一句即可.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
发表评论
-
intent 的URI功能示例总汇
2015-11-04 17:44 1262一、打开一个网页,类别是Intent.ACTION_VIEW ... -
android native调用
2014-07-11 13:56 7291、c++中的方法Java_xxx_xxx 中的Java 首 ... -
Android中显示照片的Exif信息
2013-11-14 11:36 1450从Android 2.0开始,新增了一个关于Exif信息的包 ... -
PhoneGap与android交互及 JQuery Mobile+ iscroll 列表滚动条的实现
2013-08-13 18:32 16131、PhoneGap与android交互2、JQuery M ... -
android下图片压缩
2013-05-16 19:16 830第一:我们先看下质量压缩方法: private B ... -
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
2013-05-15 16:10 1220问题: 针对Android2.3.3开发的手机程序连接We ... -
Android平台调用WebService详解
2013-05-14 15:30 1311上篇文章已经对Web Service及其相关知识 ... -
关于android中Toast重复显示的解决方案
2012-01-19 18:27 2943在使用Toast作为提示信息时,Toast会显示在屏幕下方, ... -
android Toast大全(五种情形)建立属于你自己的Toast
2012-01-19 18:24 1135Toast用于向用户显示一些帮助/提示。下面我做了 ... -
android捕获back返回键
2012-01-19 17:09 2389@Override public boolean onKe ... -
Activity生命周期之我见
2012-01-19 15:38 933关于Activity生命周期的文章很多,而且大部分也说得很详细 ... -
android之HttpURLConnection
2012-01-18 15:11 13751.HttpURLConnection 连接 URL 1 ... -
Android学习视频
2011-04-08 18:21 8891.http://www.verycd.com/topics/ ...
相关推荐
Android SDCard 操作(文件读写、容量计算) Android SDCard 操作是指在 Android 系统中对 SD 卡的读写和容量计算操作。SD 卡是 Android 设备中的一种外部存储设备,用于存储数据、音乐、图片、视频等文件。 ...
### Android SDCard操作(文件读写,容量计算) #### 概述 本文将详细介绍如何在Android应用中进行SDCard的操作,包括文件的读写以及容量的计算等内容。通过掌握这些知识点,开发者能够更好地利用外部存储空间来提高...
本资料主要围绕Android平台下对SDCard进行文件读写和容量计算的操作展开。 一、Android文件系统概述 Android系统基于Linux内核,其文件系统遵循典型的Linux文件结构,包括根目录(/)、数据分区(/data)、外部存储...
在Android开发中,获取SDCard的信息是一项常见需求,尤其是在需要监控存储空间、读写文件等场景下。本文将详细解析如何在Android应用中获取SDCard的状态、总容量、可用容量以及如何根据这些信息进行UI更新。 #### ...
在Android系统中,开发者可以通过Java API来获取存储卡(外部存储)的剩余容量信息。这里主要涉及两个关键类:`Environment`和`StatFs`。`Environment`是Android提供的一个系统类,它提供了与文件系统相关的常量和...
在Android平台上,获取SDCard(外部存储)的信息是开发者经常需要进行的操作,这有助于了解存储空间的状态,以便更好地管理应用程序的数据存储。以下将详细介绍如何在Android编程中获取SDCard卡信息,包括总容量和...
本文将详细解析"Android常用工具類"中的核心知识点,包括db(数据库操作)、sdcard(存储卡操作)、network(网络通信)、瀑布流布局以及3D Listview。 1. **db(数据库操作)** 在Android中,SQLite是内置的关系...
### 获取Android设备SD卡剩余容量的方法 在Android开发过程中,经常需要检测外部存储(如SD卡)的状态及其剩余空间,以便于进行相应的数据管理和优化。本文将详细介绍如何通过编程手段来实现这一功能。 #### 一、...
在Android系统中,读取SD卡(Secure Digital Card)的空间大小是开发者进行文件管理或存储操作时必须掌握的一项技能。SD卡通常用于扩展设备的存储容量,为应用程序、媒体文件和其他数据提供额外的存储空间。以下是...
在"压缩包子文件的文件名称列表"中,我们看到的是"sdcard_mass_storage_controller",这可能是一个实现SD卡作为大容量存储设备的控制器模块。"mass storage"通常用于描述能够存储大量数据的设备,如硬盘驱动器或USB...