`

android sd卡状态、路径、可用空间,内存

 
阅读更多

转载:android sd卡状态、路径、可用空间,内存

 

sd卡状态、路径、可用空间byte,参考http://ai4work.blog.163.com/blog/static/189873306201182310304586/

内存,参考http://blog.csdn.net/hudashi/article/details/7050897

 

manifest权限:

<!-- 在SDCard中创建与删除文件权限 -->
	<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
	<!-- 往SDCard写入数据权限 -->
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

package com.test;

import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.util.Log;

public class Test2 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		int i = 0;
		while (i < 1) {
			try {
				System.out.println("1: " + checkSDCard());
				String path = getExternalStoragePath();
				System.out.println("2: " + path);
				if (path != null) {
					System.out.println("3: " + (getAvailableStore(path)>>20) + "MB");
				}
				displayBriefMemory();
			} catch (Exception e) {
				e.printStackTrace();
			}
			i++;
		}

	}

	//内存相关
	private void displayBriefMemory() {    
        final ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);    
        ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();   
        activityManager.getMemoryInfo(info);    
        Log.i("System.out", "系统剩余内存:"+(info.availMem >> 20)+"MB");   
        Log.i("System.out", "系统是否处于低内存运行:"+info.lowMemory);
        Log.i("System.out", "当系统剩余内存低于" + (info.threshold >> 20) + "MB时就看成低内存运行");
    } 
	
	// 检查SD卡状态
	private boolean checkSDCard() {
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			return true;
		}
		return false;
	}

	// 获取SD卡路径
	public static String getExternalStoragePath() {
		// 获取SdCard状态
		String state = android.os.Environment.getExternalStorageState();

		// 判断SdCard是否存在并且是可用的

		if (android.os.Environment.MEDIA_MOUNTED.equals(state)) {

			if (android.os.Environment.getExternalStorageDirectory().canWrite()) {

				return android.os.Environment.getExternalStorageDirectory()
						.getPath();

			}

		}

		return null;

	}

	/**
	 *   * 获取存储卡的剩余容量,单位为字节
	 * 
	 *   * @param filePath
	 * 
	 *   * @return availableSpare
	 * 
	 *   
	 */

	public static long getAvailableStore(String filePath) {

		// 取得sdcard文件路径

		StatFs statFs = new StatFs(filePath);

		// 获取block的SIZE

		long blocSize = statFs.getBlockSize();

		// 获取BLOCK数量

		// long totalBlocks = statFs.getBlockCount();

		// 可使用的Block的数量

		long availaBlock = statFs.getAvailableBlocks();

		// long total = totalBlocks * blocSize;

		long availableSpare = availaBlock * blocSize;

		return availableSpare;

	}

}

 

分享到:
评论

相关推荐

    android 读取外置和内置存储卡路径和大小

    获取存储卡的总大小和可用空间,可以使用以下代码: ```java File file = new File("/path/to/storage"); // 替换为实际路径 StatFs stat = new StatFs(file.getPath()); long blockSize = stat.getBlockSizeLong();...

    Android获取SD卡路径及SDCard内存的方法

    这个示例在界面上展示了SD卡的总空间和可用空间,方便用户了解存储状态。 总之,Android开发者可以通过`Environment`和`StatFs`类来获取SD卡的路径和内存信息,确保应用能够正确管理和使用外部存储。在实际项目中,...

    android 获取sd卡状态

    通过上述步骤,我们可以有效地在Android应用中检查SD卡的状态并获取其总空间和可用空间。这些信息对于管理应用的数据存储至关重要,可以帮助开发者做出更合理的决策,避免因存储空间不足而导致的问题。

    Android 读取SD卡中文件以及内存使用情况

    在Android平台上,与外部存储(通常称为SD卡)交互是应用程序开发中的常见任务。这篇博客“Android 读取SD卡中文件以及内存使用情况”详细介绍了如何在Android应用中读取SD卡上的文件以及监控内存使用状态。这篇文章...

    07检查SD卡状态

    "07检查SD卡状态"这一主题聚焦于通过编程方式来检测SD卡是否可用、已挂载、剩余空间等关键信息。这是一项对于开发Android应用尤其是涉及到文件操作的应用来说至关重要的技能。以下将详细阐述如何进行SD卡状态的检查...

    android 读取和存储sd卡

    在Android系统中,读取和存储SD卡是应用程序与外部存储交互的重要部分,尤其是在处理大量数据或者需要离线可用内容时。本示例项目“StorageManageDemo”将帮助开发者了解如何在Android应用中有效地实现这一功能。...

    android获取SDcard内存空间

    总结一下,本篇内容涵盖了Android获取SD卡内存空间的基本方法,包括获取存储状态、总空间、可用空间和已用空间,以及如何处理不同的Android版本和权限问题。这些知识对于任何涉及存储管理的Android应用都是必不可少...

    安卓SD卡文件管理更新信息相关-android读取外置和内置存储卡路径和大小.rar

    在Android系统中,管理和操作文件,尤其是涉及到SD卡(外置和内置存储卡)的文件操作,是开发者经常面临的一项任务。这篇资料主要探讨的是如何在Android应用中获取SD卡的路径以及计算其存储大小。以下是一些关键知识...

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

    总结来说,通过`StatFs`类提供的方法,我们可以轻松地获取Android设备的内部存储和SD卡的可用空间。这个信息对于监控应用的存储需求,优化资源管理,以及向用户提供有关设备状态的反馈非常有用。确保正确处理权限...

    获取SD卡路径及手机存储路径

    Android设备通常有两种类型的存储空间:内部存储(Internal Storage)和外部存储(External Storage),通常所说的SD卡就是外部存储的一部分。在Android 6.0(API级别23)之后,对存储访问有了更严格的权限管理,...

    Android开发之系统信息【1】——获取Android手机中SD卡存储信息

    综上所述,获取Android手机SD卡存储信息的过程主要包括申请权限、判断SD卡状态、获取`StatFs`对象以及计算存储空间。开发者可以根据需求调整代码,比如添加错误处理机制,或者适配不同Android版本的差异。了解这些...

    android中复制资源文件中的数据库文件到sd卡或内存源码

    在Android开发中,有时我们需要将预置的数据库文件与应用一起发布,并在应用程序首次启动时将其复制到外部存储(如SD卡)或内部存储(内存)中,以便于后续的操作和使用。这样的需求通常出现在那些需要提供初始数据...

    android SD卡存储数据

    ### Android SD卡存储数据 #### 知识点一:Android应用权限管理 在Android系统中,应用程序如果想要访问外部存储(如SD卡)必须在`AndroidManifest.xml`文件中声明相应的权限。对于写入外部存储的操作,需要声明...

    Android 获取内外SD卡路径几种方法总结

    在Android开发中,获取SD卡路径是常见的需求,尤其是在处理文件操作时。本文将总结两种在Android系统中获取内外SD卡路径的方法。 首先,我们来看第一种方法,这是较为简单直接的方式,通常适用于大部分场景: 1. *...

    android 信号强度检测和SD卡存储空间检测code

    以上就是Android设备信号强度检测和SD卡存储空间检测的基本方法。这些功能可以帮助开发者更好地了解设备状态,从而优化应用的性能和用户体验。例如,当存储空间不足时,应用可以提前提示用户清理空间,或者在信号弱...

    android通过反射获取内置存储、SD、OTG盘的路径,适合三方apk存储查看与文件管理

    总之,通过反射机制,开发者可以在不依赖特定厂商实现的情况下,获取并管理Android设备上的各种存储路径,包括内置存储、SD卡和OTG设备,同时获取到它们的空间信息,以适应不同的设备环境。在`MountRootManagerRf....

    Android23SD卡挂载流程浅析.docx

    - `&lt;sysfs_path&gt;`:`/devices/platform/goldfish_mmc.0/devices/platform/msm_sdcc.2/mmc_host/mmc1`,这条路径用于监控SD卡的插入状态,一旦检测到SD卡插入,就会在此路径下创建相应的子目录来存储SD卡的信息。...

    android手机获取SD卡信息代码

    在Android平台上,获取SD卡(外部存储)信息是开发者经常需要进行的操作,这涉及到对文件系统和设备存储的理解。在Android系统中,SD卡通常被视为外部存储,用于扩展设备的存储空间,允许用户存储多媒体文件、应用...

    Android应用源码之判断双SD卡_CheckDoubleSDCard-IT计算机-毕业设计.zip

    在Android应用开发中,有时我们需要判断设备是否存在两个外部存储卡,即双SD卡。这个"Android应用源码之判断双SD卡_CheckDoubleSDCard"项目就是针对这一需求的一个实例。这个源码Demo可以帮助开发者理解如何在...

    Android SD数据存储

    在Android系统中,SD卡(Secure Digital card)主要用于扩展设备的外部存储空间,方便用户存储大量数据,如图片、音频、视频以及应用数据等。Android Studio作为官方推荐的开发环境,提供了丰富的API和工具来支持...

Global site tag (gtag.js) - Google Analytics