`

查看SDCard的容量情况

 
阅读更多

 

 

private Button myButton;
	private TextView myTextView;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sd_size);
		
		myButton = (Button) findViewById(R.id.button1);
		myTextView = (TextView) findViewById(R.id.textView1);
		myButton.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View arg0) {
				showSize();
			}
		});
	}

	private void showSize() {
		/* 将TextView及ProgressBar设定为空值及0 */
		myTextView.setText("");
		/* 判断记忆卡是否插入 */
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			/* 取得SD CARD档案路径一般是/sdcard */
			File path = Environment.getExternalStorageDirectory();
			/* StatFs看文件系统空间使用状况 */
			StatFs statFs = new StatFs(path.getPath());
			/* Block的size */
			long blockSize = statFs.getBlockSize();
			/* 总Block数量 */
			long totalBlocks = statFs.getBlockCount();
			/* 已使用的Block数量 */
			long availableBlocks = statFs.getAvailableBlocks();
			String[] total = fileSize(totalBlocks * blockSize);
			String[] available = fileSize(availableBlocks * blockSize);
			/* getMax取得在main.xml里ProgressBar设定的最大值 */
			String text = "总共" + total[0] + total[1] + "\n";
			text += "可用" + available[0] + available[1];
			myTextView.setText(text);
		} else if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_REMOVED)) {
			String text = "SD CARD已移除";
			myTextView.setText(text);
		}
	}

	/* 回传为字符串数组[0]为大小[1]为单位KB或MB */
	private String[] fileSize(long size) {
		String str = "";
		if (size >= 1024) {
			str = "KB";
			size /= 1024;
			if (size >= 1024) {
				str = "MB";
				size /= 1024;
			}
		}
		DecimalFormat formatter = new DecimalFormat();
		/* 每3个数字用,分隔如:1,000 */
		formatter.setGroupingSize(3);
		String result[] = new String[2];
		result[0] = formatter.format(size);
		result[1] = str;
		return result;
	}
 


  • 大小: 15 KB
分享到:
评论

相关推荐

    win Mobile SDcard容量 电池 信息查询

    WindowsMobile VB dot net SDcard 容量查询 GetDiskFreeSpaceExW 调用 API Battery 状态查询 GetSystemPowerStatusEx 调用 API 给自己将来备忘

    获取sdcard容量

    获取当前sdcard的容量,帮助判断能否继续写入文件

    Android 获取SDCard卡容量.rar

    Android获取手机内置存储SDCard的使用情况,包括SD卡容量、已使用大小,剩余容量大小等信息,将获取的过程写入按钮事件中,单击按钮后,获取SD卡容量信息。  if(Environment.getExternalStorageState().equals...

    Android_SDCard操作(文件读写,容量计算).

    Android_SDCard操作(文件读写,容量计算).

    Android 解析如何检测获取SDCard内存剩余空间.rar

    SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...

    Android_SDCard操作(文件读写,容量计算)

    Android_SDCard操作(文件读写,容量计算)Android_SDCard操作(文件读写,容量计算)

    Android_SDCard.rar_android

    Android_SDCard操作(文件读写,容量计算)文件读写,容量计算

    Android编程获取sdcard卡信息的方法

    主要介绍了Android编程获取sdcard卡信息的方法,可实现获取sdcard总容量、剩余容量等功能,涉及Android针对sdcard进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    java_App应用文件管理工具标准代码工具类_android

    获取SDCard卡的剩余容量(单位byte) 获取系统AbsolutePath存储路径 获取系统Path存储路径 获取可用手机内容容量大小 在SdCard中创建文件 在SdCard中创建目录 检查文件路径是否存在 写入文件 根据地址获取InputStream

    Android编程获取SD卡路径及剩余容量的方法

    本文实例讲述了Android编程获取SD卡路径及剩余容量的方法。分享给大家供大家参考,具体如下: public static String getExternalStoragePath() { // 获取SdCard状态 String state = android.os.Environment....

    FsWrap.h 支持長檔名就沒有問題

    /* Card Capacity */ >> 如果定義成uint32_t , 8G 以上的容量, 將會得到錯誤的容量, 必須放大 uint32_t CardBlockSize; /* Card Block Size */ uint16_t RCA; uint8_t CardType; } SD_CardInfo;

    ff.h 支持長檔名

    /* Card Capacity */ >> 如果定義成uint32_t , 8G 以上的容量, 將會得到錯誤的容量, 必須放大 uint32_t CardBlockSize; /* Card Block Size */ uint16_t RCA; uint8_t CardType; } SD_CardInfo;

    Panasonic_SDFormatter V3.10验证可用

    Panasonic_SDFormatter V3.10,已在win 10下验证可用,sdcard初始化和改容量,非常便利!

    安卓4.0内外卡互换程序

    用于安卓4.0系统中的内外内互换,互换后外卡由原来的SDCARD1变成了SDCARD,这样程序就可以安装在外置TF卡了,解决了内部存储卡容量小,软件安装少的问题.

    stm32f103c8t6_FATFS V0.09A-SD Card.zip

    stm32f103c8t6 SDCard例程 1、FATFS 中文长文件名 2、解决stm32空间不足不能存储中文编码的问题(更改ff_convert 函数,使用自定义需要的中文编码) 3、SD卡为SPI模式 支持SDCH卡 4、内附FATFS V0.09A官方未改动...

    一键bat百变ROMdiy工具

    *mount USB storage:开启Recovery模式下的USB大容量存储功能(也就是说可以在Recovery下对内存卡进行读写操作) 四:Advance 功能详解 *Reboot Recovery:重启Recovery(重启手机并再次进入Recovery) *Wipe ...

    Android安卓中循环录像并检测内存卡容量

    * 循环录像,当内存卡容量少于300M时,自动删除视频列表里面的第一个文件 */ private void xunhuanluxiang() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { ...

    android获取监听SD Card状态的方法

    本文实例讲述了android获取监听SD Card状态的方法。分享给大家供大家参考。具体分析如下: 1. 注册...if (newState.equals(Environment.MEDIA_SHARED)) //大容量存储 { ///////////////// } else if (n

    android-timestamp-keeper:读取和写入时间戳到android中的文件-开源

    现代安卓设备不再使用大容量存储模式。 相反,他们使用内部 sdcard 作为 /data 分区内的虚拟安装子文件夹。 如果 MTP 保留正确的时间戳就可以了,但事实并非如此。 其他可以工作的选项,比如带有 MFMT 命令的 FTP 在...

    android-timestamp-keeper:在Android中读取和写入时间戳到文件-开源

    现代android设备不再使用大容量存储模式。 相反,他们使用内部sdcard作为/ data分区内虚拟安装的子文件夹。 如果MTP正确地保留了时间戳,那不是可以的。 其他可能起作用的选项,例如带MFMT命令的FTP在Android上也...

Global site tag (gtag.js) - Google Analytics