Android检测手机中存储卡及剩余空间大小的方法(基于Environment,StatFs及DecimalFormat)_Android

本文实例讲述了Android检测手机中存储卡及剩余空间大小的方法。分享给大家供大家参考,具体如下:

Android中Environment可用来检测手机中是否安装有存储卡以及文件存储路径等。StatFs可以获取存储卡的空间大小以及剩余空间大小。DecimalFormat可以实现把数字划分为一定的格式。

具体程序如下:

import java.io.File;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
public class A08Activity extends Activity {
 private TextView tv;//用来显示存储卡的情况
 private Button b;//触发检测存储卡事件
 private ProgressBar pb;//用ProgressBar来显示存储卡的状况
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv=(TextView)findViewById(R.id.tv);
    b=(Button)findViewById(R.id.button);
    pb=(ProgressBar)findViewById(R.id.pb);
    b.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
  showSize();//用来检测存储卡的存储情况
  }
  });
  }
 protected void showSize() {
 // TODO Auto-generated method stub
 tv.setText("");
 pb.setProgress(0);
 //用来检测存储卡是否存在
 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
  //如果存储卡存在,则获取存储文件的路径
  File path=Environment.getExternalStorageDirectory();
  StatFs sf=new StatFs(path.getPath());//创建StatFs对象
  long blockSize=sf.getBlockSize();//获得blockSize
  long totalBlock=sf.getBlockCount();//获得全部block
  long availableBlock=sf.getAvailableBlocks();//获取可用的block
  //用String数组来存放Block信息
  String[] total=fileSize(totalBlock*blockSize);
  String[] available=fileSize(availableBlock*blockSize);
  //在ProgressBar中显示可用空间的大小
  int a=Integer.parseInt(available[0]);
  pb.setProgress(a);
  String s="SD卡中空间总共有:"+total[0]+total[1]+"\n";
  s+="剩余空间大小:"+available[0]+available[1];
  tv.setText(s);
 }
 else if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
  tv.setText("SD卡已移除");
 }
 }
 //用来定义存储空间显示格式
 public String[] fileSize(long size){
 String s="";
 if(size>1024){
  s="KB";
  size/=1024;
  if(size>1024){
  s="MB";
  size/=1024;
  }
 }
 DecimalFormat df=new DecimalFormat();
 df.setGroupingSize(3);
 String[] result=new String[3];
 result[0]=df.format(size);
 result[1]=s;
 return result;
 }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》及《Android开发入门与进阶教程》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 检测
, 剩余空间
, 存储卡
Android检测存储
statfs 获得剩余空间、剩余价值、剩余公主、剩余 英文、消费者剩余,以便于您获取更多的相关知识。

时间: 2024-08-03 12:54:11

Android检测手机中存储卡及剩余空间大小的方法(基于Environment,StatFs及DecimalFormat)_Android的相关文章

android 获取手机内存及 内存可用空间的方法

实例如下: //1.获取内存可用大小,内存路径 String path=Environment.getDataDirectory().getAbsolutePath(); String memoryAvaliSpace= Formatter.formatFileSize(this,getAvailSpace(path)); //2.获取sd卡可用大小,sd卡路径 String sdPath=Environment.getExternalStorageDirectory().getAbsolute

JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法

         JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法          这篇文章主要介绍了JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法,因转换的字符串数字都以0开头,导致parseInt函数在浏览器和Android WebView中转换结果不一样,本文给出了解决方法,需要的朋友可以参考下 今天被一个问题困扰,有一个页面在浏览器(无论是手机还是PC)上运行良好,而通过WebView就出

sizeof-C#中如何计算类占空间大小??

问题描述 C#中如何计算类占空间大小?? C#中如何计算类占空间大小?? 我用sizeof不行 用using System.Runtime.InteropServices;的Marshal.SizeOf(p)报异常. 解决方案 C# 能否获取一个对象所占内存的大小? 今日,在项目重构的时候忽然想到一个问题,一个类哪些成员的增加,会影响一个类所占内存的大小?C#有没有办法知道一个对象占多少内存呢? 第一个问题:很快想到是类的非静态的字段.属性. 第二个问题:首先想到的是sizeof(). 下面开始

Oracle修改表空间大小的方法_oracle

本文讲述了Oracle修改表空间大小的方法.分享给大家供大家参考,具体如下: 1)查看各表空间分配情况 SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name; TABLESPACE_NAME SUM(BYTES)/1024/1024 ------------------------------ -------------------- UNDOTBS1

手机中怎么取消qq空间特别关心的好友

1)我们在手机中打开手机QQ空间,然后在手机QQ空间界面点击[三横]下面找到[特别关心]点击此选项.    2)接着我们在打开[特别关心]之后在这里面找到[管理特别关心好友]我们点击它进入,在此会看到你关注的特别关心好友了,在这里我们就可以关注与取消关闭了,点击[+]按钮    3)好了我们进入到[选择好友]再点击下面的伸展按钮,待伸展开大家现在所关注的好友后,大家只需要想对哪个好友却笑关注的话就点击哪个好友的昵称,点击后就会小时的了,最后点击[完成]进行保存即可.  

Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)_Android

本文实例讲述了Android开发之在程序中时时获取logcat日志信息的方法.分享给大家供大家参考,具体如下: 今天分享一个在软件开发中很实用的例子,也是这几天在通宵加班中我使用的一个小例子, 在程序中监听Log信息. 为什么说它实用?原因是Android的开发厂商各种修改之后手机和手机之间以后存在很多差异.比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问.这样就给开发适配带来了巨大的麻烦.本来

Delphi实现获取磁盘空间大小的方法_Delphi

本文所述Delphi实例用以获取指定的磁盘空间容量大小,检测磁盘大小,从combox中选择磁盘代号等功能.点击"检测驱动器"容量信息的按钮,就可以在下边显示出该磁盘的总空间大小以及要用容量的大小.读者可根据需求添加对应的Button与label控件. 主要程序代码如下所示: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtr

word 2010 中更改文字字体和大小的方法

  word 2010 中更改文字字体和大小,编辑标准文档必须用到一项功能,一起来看看怎么设置吧. 首先选中想要更改的文字,点击"字体"中的"字号"下拉菜单,这时我们可以进行字号的选择,如下图所示. 而我们可以在"字体"中的"字体样式"下拉菜单中选择你想要的字体样式.

Android编程实现手绘及保存为图片的方法(附demo源码下载)_Android

本文实例讲述了Android编程实现手绘及保存为图片的方法.分享给大家供大家参考,具体如下: 运行效果图预览: 应 yzuo_08 要求做了此Demo,跟以前那个手写板Demo不同的是可以将画布的内容保存为图片. 附上关键代码: MainView.java package com.tszy.views; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; impor