安卓工具类------>SD卡相关的辅助类

import java.io.File;

import android.os.Environment;
import android.os.StatFs;

//SD卡相关的辅助类
public class SDCardUtils
{
	private SDCardUtils()
	{
		/* cannot be instantiated */
		throw new UnsupportedOperationException("cannot be instantiated");
	}

	/**
	 * 判断SDCard是否可用
	 *
	 * @return
	 */
	public static boolean isSDCardEnable()
	{
		return Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED);

	}

	/**
	 * 获取SD卡路径
	 *
	 * @return
	 */
	public static String getSDCardPath()
	{
		return Environment.getExternalStorageDirectory().getAbsolutePath()
				+ File.separator;
	}

	/**
	 * 获取SD卡的剩余容量 单位byte
	 *
	 * @return
	 */
	public static long getSDCardAllSize()
	{
		if (isSDCardEnable())
		{
			StatFs stat = new StatFs(getSDCardPath());
			// 获取空闲的数据块的数量
			long availableBlocks = (long) stat.getAvailableBlocks() - 4;
			// 获取单个数据块的大小(byte)
			long freeBlocks = stat.getAvailableBlocks();
			return freeBlocks * availableBlocks;
		}
		return 0;
	}

	/**
	 * 获取指定路径所在空间的剩余可用容量字节数,单位byte
	 *
	 * @param filePath
	 * @return 容量字节 SDCard可用空间,内部存储可用空间
	 */
	public static long getFreeBytes(String filePath)
	{
		// 如果是sd卡的下的路径,则获取sd卡可用容量
		if (filePath.startsWith(getSDCardPath()))
		{
			filePath = getSDCardPath();
		} else
		{// 如果是内部存储的路径,则获取内存存储的可用容量
			filePath = Environment.getDataDirectory().getAbsolutePath();
		}
		StatFs stat = new StatFs(filePath);
		long availableBlocks = (long) stat.getAvailableBlocks() - 4;
		return stat.getBlockSize() * availableBlocks;
	}

	/**
	 * 获取系统存储路径
	 *
	 * @return
	 */
	public static String getRootDirectoryPath()
	{
		return Environment.getRootDirectory().getAbsolutePath();
	}

}

时间: 2024-10-11 23:20:52

安卓工具类------>SD卡相关的辅助类的相关文章

安卓工具类------>常用单位转换的辅助类

import android.content.Context; import android.util.TypedValue; //常用单位转换的辅助类 public class DensityUtils { private DensityUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException("cannot be instantiated"); } /** * dp转px * * @

我的看法和总结----关于安卓手机上SD卡等名称和叫法的解释

因今天本小白要用到Android里面的Envirement类,来读取手机内存里面的信息. 却一直纠结在到底什么是手机内存卡,什么是内置SD卡,什么是ROM,什么是RAM...... 下面就是我的总结,写错的地方还请路过的博友们多多指教. 在我看来: 我们平常所说的内存卡在我看来可以分为两类:手机自带内存卡和小小的黑黑的TF卡(外置内存卡:可以插进手机里面的) 手机自带内存卡:这个用图来表示会更加的直观一些     TF卡:也就是我们平常在用的,卡片照相机里的,或者是以前老手机里面可以随意拔插的小

安卓保存图片到SD卡,使用byte流

头几天遇到一个问题:在安卓开发应用中保存图片到SD卡,并且 用户在图库中搜到,类似于缓存的那种形式.最开始的第一想法是改一下后缀名,例如把一个图片保存为image1.txt,这样保存当然没问题,但在应用中读取中就不行了,后来也没研究为什么不能正常读取,毕竟这种办法太土鳖了... 今天有空上网搜了一下,发现使用byte流保存到SD卡就可以满足我的需求.下面我把正常保存图片文件的代码和保存图片byte流的代码都贴出来,方便大家共同学习参考. 假设我的图片的名字为 image1. 正常保存图片文件的代

安卓工具类------->Http请求的工具类

import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; //Http请

SD卡相关知识总结

SD卡包含四种: SDSC: 标准容量卡,SD1.1/1.0规范,容量1MB-2GB, 文件格式为FAT32 SDHC: 高容量SD卡,SD2.0规范,容量4G-32G, 文件格式为FAT32 SDXC: 容量扩大化的安全存储卡,容量32G-2TB, 文件格式extFAT32 SDIO: 在SD标准上定义了一种外设接口.SDIO和SD卡规范间的一个重要区别是增加了低速标准.SDIO卡只需要SPI和1位SD传输模式.   SD卡的检测一共有三种方法: 在开机的时候通过CMD发送命令检测T卡是否存在

安卓手机内外SD卡互换

相信有許多人....有內置sd太小...外置sd(sdcard2或extsd)卻只能放資料.... 一些遊戲或者是影音播放軟體....根本不會去讀外置sd(sdcard2或extsd)..... 記憶卡買多大都沒啥用.....非常困擾..... 終於...給我找到修改路徑的方法.......注意....android4.0以上適用....4.0以下的話路徑不太一樣!! 1.android4.0版本適用 2.需root 3.使用ES文件瀏覽器,找到system/etc/vold.fstab這個文件

安卓工具类-------->打开或关闭软键盘

import android.content.Context; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; //打开或关闭软键盘 public class KeyBoardUtils { /** * 打卡软键盘 * * @param mEditText输入框 * @param mContext上下文 */ public static void openKeybord(Edi

安卓工具类------->SharedPreferences

import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import android.content.Context; import android.content.SharedPreferences; public class SPUtils { public SPUtils() { /* cannot be instantiated *

SD卡操作相关的工具SDCardUtils

SD卡操作相关的工具 package com.flyou.utils; import java.io.File; import android.os.Environment; import android.os.StatFs; /** * SD卡相关的辅助类 * * * */ public class SDCardUtils { private SDCardUtils() { /* cannot be instantiated */ throw new UnsupportedOperationE