Android:计算剩余内存

public static long getInternalAvailableSpace()
	{
		long availableSpace = -1L;
		try
		{
			StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
			stat.restat(Environment.getDataDirectory().getPath());
			availableSpace = (long) stat.getAvailableBlocks()
					* (long) stat.getBlockSize() / 1048576;
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		return availableSpace;
	}
	public long TotalMemory()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() *  (long) statFs.getBlockSize()) / 1048576;
        return Total;
    }

    public long FreeMemory()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
        long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
        return Free;
    }

    public long BusyMemory()
    {
        StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());   
        long Total = ( (long) statFs.getBlockCount() * (long) statFs.getBlockSize()) / 1048576;
        long Free  = (statFs.getAvailableBlocks() *  (long) statFs.getBlockSize()) / 1048576;
        long Busy  = Total - Free;
        return Busy;
    }

以MB为单位。

SD卡的只要修改路径为:

getExternalStorageDirectory


你可能感兴趣的:(android,exception)