android.os.StatFs#getAvailableBlocksLong ( )源码实例Demo

下面列出了android.os.StatFs#getAvailableBlocksLong ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AndroidWallet   文件: SDCardUtils.java
/**
 * 获取SD卡信息
 *
 * @return SDCardInfo
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getSDCardInfo() {
    if (!isSDCardEnable()) return null;
    SDCardInfo sd = new SDCardInfo();
    sd.isExist = true;
    StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getPath());
    sd.totalBlocks = sf.getBlockCountLong();
    sd.blockByteSize = sf.getBlockSizeLong();
    sd.availableBlocks = sf.getAvailableBlocksLong();
    sd.availableBytes = sf.getAvailableBytes();
    sd.freeBlocks = sf.getFreeBlocksLong();
    sd.freeBytes = sf.getFreeBytes();
    sd.totalBytes = sf.getTotalBytes();
    return sd.toString();
}
 
源代码2 项目: NewsMe   文件: VDUtility.java
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
public static boolean getSDCardRemainCanWrite(Context context,
		long remainSize) {
	String path = getSDCardDataPath(context);
	StatFs statFS = new StatFs(path);
	long blockSize = 0L;
	if (getSDKInt() >= 18) {
		blockSize = statFS.getBlockCountLong();
	} else {
		blockSize = statFS.getBlockSize();
	}
	long availableBlock = 0L;
	if (getSDKInt() >= 18) {
		availableBlock = statFS.getAvailableBlocksLong();
	} else {
		availableBlock = statFS.getAvailableBlocks();
	}
	long size = blockSize * availableBlock;
	if (size > remainSize) {
		return true;
	}

	return false;
}
 
源代码3 项目: RxTools-master   文件: RxFileTool.java
/**
 * 获取磁盘可用空间.
 */
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
public static long getSDCardAvailaleSize() {
    File path = getRootPath();
    StatFs stat = new StatFs(path.getPath());
    long blockSize, availableBlocks;
    if (Build.VERSION.SDK_INT >= 18) {
        blockSize = stat.getBlockSizeLong();
        availableBlocks = stat.getAvailableBlocksLong();
    } else {
        blockSize = stat.getBlockSize();
        availableBlocks = stat.getAvailableBlocks();
    }
    return availableBlocks * blockSize;
}
 
源代码4 项目: AndroidWallet   文件: SDCardUtils.java
/**
 * 获取SD卡剩余空间
 *
 * @return SD卡剩余空间
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getFreeSpace() {
    if (!isSDCardEnable()) return null;
    StatFs stat = new StatFs(getSDCardPath());
    long blockSize, availableBlocks;
    availableBlocks = stat.getAvailableBlocksLong();
    blockSize = stat.getBlockSizeLong();
    return ConvertUtils.byte2FitMemorySize(availableBlocks * blockSize);
}
 
源代码5 项目: YCAudioPlayer   文件: SDUtils.java
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static long getAvailableSize() {
    if (isMounted()) {
        StatFs stat = new StatFs(getSDCardPath());
        // 获得可用的块的数量
        long count = stat.getAvailableBlocksLong();
        long size = stat.getBlockSizeLong();
        return count * size;
    }
    return 0;
}
 
源代码6 项目: ViewDebugHelper   文件: SdCardUtils.java
/**
 * 获得sd卡剩余容量,即可用大小
 * 
 * @return
 */
public static long getSDAvailableSize() {
	File path = Environment.getExternalStorageDirectory();
	StatFs stat = new StatFs(path.getPath());
	long blockSize =0;
	long availableBlocks=0;
	if(AppUtil.getSDKInt()>=18){
		blockSize= stat.getBlockSizeLong();
		availableBlocks=stat.getAvailableBlocksLong();
	}else{
		blockSize= stat.getBlockSize();
		availableBlocks=stat.getAvailableBlocks();
	}
	return blockSize * availableBlocks;
}
 
源代码7 项目: Android-Remote   文件: Utilities.java
/**
 * Get the free space on the external storage device (like sd card)
 *
 * @return The free space in byte
 */
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static double getFreeSpaceExternal() {
    StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
        return (double) stat.getAvailableBlocks() * (double) stat.getBlockSize();
    } else {
        return (double) stat.getAvailableBlocksLong() * (double) stat.getBlockSizeLong();
    }
}
 
源代码8 项目: DevUtils   文件: SDCardUtils.java
/**
 * 返回对应路径的空间大小信息
 * @param path 路径
 * @return long[], 0 = 总空间大小, 1 = 空闲空间大小, 2 = 已使用空间大小
 */
public static long[] getBlockSizeInfos(final String path) {
    try {
        // 获取路径的存储空间信息
        StatFs statFs = new StatFs(path);
        // 单个数据块的大小、数据块数量、空闲的数据块数量
        long blockSize, blockCount, availableBlocks;
        // 版本兼容
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            blockSize = statFs.getBlockSizeLong();
            blockCount = statFs.getBlockCountLong();
            availableBlocks = statFs.getAvailableBlocksLong();
        } else {
            blockSize = statFs.getBlockSize();
            blockCount = statFs.getBlockCount();
            availableBlocks = statFs.getAvailableBlocks();
        }
        // 计算空间信息
        long[] blocks = new long[3];
        blocks[0] = blockSize * blockCount;
        blocks[1] = blockSize * availableBlocks;
        blocks[2] = ((blockCount - availableBlocks) * blockSize);
        // 返回空间信息
        return blocks;
    } catch (Exception e) {
        LogPrintUtils.eTag(TAG, e, "getBlockSizeInfos");
    }
    return null;
}
 
源代码9 项目: android-storage   文件: Storage.java
public long getFreeSpace(String dir, SizeUnit sizeUnit) {
    StatFs statFs = new StatFs(dir);
    long availableBlocks;
    long blockSize;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
        availableBlocks = statFs.getAvailableBlocks();
        blockSize = statFs.getBlockSize();
    } else {
        availableBlocks = statFs.getAvailableBlocksLong();
        blockSize = statFs.getBlockSizeLong();
    }
    long freeBytes = availableBlocks * blockSize;
    return freeBytes / sizeUnit.inBytes();
}
 
源代码10 项目: HeroVideo-master   文件: CommonUtil.java
/**
 * 获取手机内存存储可用空间
 *
 * @return
 */
public static long getPhoneAvailableSize()
{

    if (!checkSdCard())
    {
        File path = Environment.getDataDirectory();
        StatFs mStatFs = new StatFs(path.getPath());
        long blockSizeLong = mStatFs.getBlockSizeLong();
        long availableBlocksLong = mStatFs.getAvailableBlocksLong();
        return blockSizeLong * availableBlocksLong;
    } else
        return getSDcardAvailableSize();
}
 
源代码11 项目: Dainty   文件: DownloadRecordActivity.java
private void refreshStorageStatus() {
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
        long blockSize = statFs.getBlockSizeLong();
        long totalBlocks = statFs.getBlockCountLong();
        long availableBlocks = statFs.getAvailableBlocksLong();
        String totalSize = Formatter.formatFileSize(this, blockSize * totalBlocks);
        String availableSize = Formatter.formatFileSize(this, blockSize * availableBlocks);
        textProgressBar.setTextAndProgress("内置存储可用:" + availableSize + "/共:" + totalSize, (int) ((float) availableBlocks / totalBlocks * 100));
    } else {
        textProgressBar.setTextAndProgress("内置存储不可用", 0);
    }
}
 
源代码12 项目: 365browser   文件: ApiCompatibilityUtils.java
/**
 * See {@link android.os.StatFs#getAvailableBlocksLong}.
 */
@SuppressWarnings("deprecation")
public static long getAvailableBlocks(StatFs statFs) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        return statFs.getAvailableBlocksLong();
    } else {
        return statFs.getAvailableBlocks();
    }
}
 
源代码13 项目: Audinaut   文件: SubsonicFragment.java
void warnIfStorageUnavailable() {
    if (!Util.isExternalStoragePresent()) {
        Util.toast(context, R.string.select_album_no_sdcard);
    }

    try {
        StatFs stat = new StatFs(FileUtil.getMusicDirectory(context).getPath());
        long bytesAvailableFs = stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
        if (bytesAvailableFs < 50000000L) {
            Util.toast(context, context.getResources().getString(R.string.select_album_no_room, Util.formatBytes(bytesAvailableFs)));
        }
    } catch (Exception e) {
        Log.w(TAG, "Error while checking storage space for music directory", e);
    }
}
 
源代码14 项目: lrkFM   文件: DiskUtil.java
/**
 * Calculates free space on disk
 * @param external  If true will query external disk, otherwise will query internal disk.
 * @return Number of free mega bytes on disk.
 */
public static int freeSpaceGibi(boolean external)
{
    StatFs statFs = getStats(external);
    long availableBlocks = statFs.getAvailableBlocksLong();
    long blockSize = statFs.getBlockSizeLong();
    long freeBytes = availableBlocks * blockSize;
    Log.d(TAG, "Free disk space: " + String.valueOf(freeBytes/ GIBIBYTE));
    return (int) (freeBytes / GIBIBYTE);
}
 
源代码15 项目: android-common   文件: SdCardUtil.java
/**
 * Get SD card info detail.
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static SDCardInfo getSDCardInfo() {
    SDCardInfo sd = new SDCardInfo();
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        sd.isExist = true;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            File sdcardDir = Environment.getExternalStorageDirectory();
            StatFs sf = new StatFs(sdcardDir.getPath());

            sd.totalBlocks = sf.getBlockCountLong();
            sd.blockByteSize = sf.getBlockSizeLong();

            sd.availableBlocks = sf.getAvailableBlocksLong();
            sd.availableBytes = sf.getAvailableBytes();

            sd.freeBlocks = sf.getFreeBlocksLong();
            sd.freeBytes = sf.getFreeBytes();

            sd.totalBytes = sf.getTotalBytes();
        }
    }
    if (Log.isPrint) {
        Log.i(TAG, sd.toString());
    }
    return sd;
}
 
源代码16 项目: lrkFM   文件: DiskUtil.java
/**
 * Calculates occupied space on disk
 * @param external  If true will query external disk, otherwise will query internal disk.
 * @return Number of occupied mega bytes on disk.
 */
public static int busySpaceGibi(boolean external)
{
    StatFs statFs = getStats(external);
    long total = (statFs.getBlockCountLong() * statFs.getBlockSizeLong());
    long free  = (statFs.getAvailableBlocksLong() * statFs.getBlockSizeLong());
    long used = (total - free) / GIBIBYTE;
    Log.d(TAG, "used disk space: " + String.valueOf(used/ GIBIBYTE));
    return (int) used;
}
 
源代码17 项目: RxTools-master   文件: RxFileTool.java
/**
 * 获取SD卡剩余空间
 *
 * @return SD卡剩余空间
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getFreeSpace() {
    if (!isSDCardEnable()) return "sdcard unable!";
    StatFs stat = new StatFs(getSDCardPath());
    long blockSize, availableBlocks;
    availableBlocks = stat.getAvailableBlocksLong();
    blockSize = stat.getBlockSizeLong();
    return RxDataTool.byte2FitSize(availableBlocks * blockSize);
}
 
源代码18 项目: Pioneer   文件: IoUtils.java
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
private static long getExtStorageAvailableApi18() {
    if (hasExtStorage()) {
        File extStorage = Environment.getExternalStorageDirectory();
        StatFs sf = new StatFs(extStorage.getAbsolutePath());
        return sf.getAvailableBlocksLong() * sf.getBlockSizeLong();
    }
    return 0;
}
 
源代码19 项目: FileManager   文件: DiskStat.java
private void calculateInternalSpace() {
    File root = Environment.getRootDirectory();
    StatFs sf = new StatFs(root.getPath());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        mInternalBlockSize = sf.getBlockSizeLong();
        mInternalBlockCount = sf.getBlockCountLong();
        mInternalAvailableBlocks = sf.getAvailableBlocksLong();
    } else {
        mInternalBlockSize = sf.getBlockSize();
        mInternalBlockCount = sf.getBlockCount();
        mInternalAvailableBlocks = sf.getAvailableBlocks();
    }
}
 
源代码20 项目: medic-android   文件: MedicAndroidJavascript.java
@org.xwalk.core.JavascriptInterface
@android.webkit.JavascriptInterface
public String getDeviceInfo() {
	try {
		if (activityManager == null) {
			return jsonError("ActivityManager not set. Cannot retrieve RAM info.");
		}

		if (connectivityManager == null) {
			return jsonError("ConnectivityManager not set. Cannot retrieve network info.");
		}

		String versionName = parent.getPackageManager()
				.getPackageInfo(parent.getPackageName(), 0)
				.versionName;
		JSONObject appObject = new JSONObject();
		appObject.put("version", versionName);

		String androidVersion = Build.VERSION.RELEASE;
		int osApiLevel = Build.VERSION.SDK_INT;
		String osVersion = System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")";
		JSONObject softwareObject = new JSONObject();
		softwareObject
				.put("androidVersion", androidVersion)
				.put("osApiLevel", osApiLevel)
				.put("osVersion", osVersion);

		String device = Build.DEVICE;
		String model = Build.MODEL;
		String manufacturer = Build.BRAND;
		String hardware = Build.HARDWARE;
		Map<String, String> cpuInfo = getCPUInfo();
		JSONObject hardwareObject = new JSONObject();
		hardwareObject
				.put("device", device)
				.put("model", model)
				.put("manufacturer", manufacturer)
				.put("hardware", hardware)
				.put("cpuInfo", new JSONObject(cpuInfo));

		File dataDirectory = Environment.getDataDirectory();
		StatFs dataDirectoryStat = new StatFs(dataDirectory.getPath());
		long dataDirectoryBlockSize = dataDirectoryStat.getBlockSizeLong();
		long dataDirectoryAvailableBlocks = dataDirectoryStat.getAvailableBlocksLong();
		long dataDirectoryTotalBlocks = dataDirectoryStat.getBlockCountLong();
		long freeMemorySize = dataDirectoryAvailableBlocks * dataDirectoryBlockSize;
		long totalMemorySize = dataDirectoryTotalBlocks * dataDirectoryBlockSize;
		JSONObject storageObject = new JSONObject();
		storageObject
				.put("free", freeMemorySize)
				.put("total", totalMemorySize);

		MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
		activityManager.getMemoryInfo(memoryInfo);
		long totalRAMSize = memoryInfo.totalMem;
		long freeRAMSize = memoryInfo.availMem;
		long thresholdRAM = memoryInfo.threshold;
		JSONObject ramObject = new JSONObject();
		ramObject
				.put("free", freeRAMSize)
				.put("total", totalRAMSize)
				.put("threshold", thresholdRAM);

		NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo();
		JSONObject networkObject = new JSONObject();
		if (netInfo != null && Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
			NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
			int downSpeed = networkCapabilities.getLinkDownstreamBandwidthKbps();
			int upSpeed = networkCapabilities.getLinkUpstreamBandwidthKbps();
			networkObject
					.put("downSpeed", downSpeed)
					.put("upSpeed", upSpeed);
		}

		return new JSONObject()
				.put("app", appObject)
				.put("software", softwareObject)
				.put("hardware", hardwareObject)
				.put("storage", storageObject)
				.put("ram", ramObject)
				.put("network", networkObject)
				.toString();
	} catch(Exception ex) {
		return jsonError("Problem fetching device info: ", ex);
	}
}