以下代码片段转载自
Android Snippets
该代码片段可以让我们获取internal和external的存储空间大小。
import java.io.File;
import android.os.Environment;
import android.os.StatFs;
public class MemoryStatus {
private static final String TAG = "***MemoryStatus***";
static final int ERROR = -1;
static public boolean externalMemoryAvailable() {
return android.os.Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED);
}
static public long getAvailableInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
static public long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
static public long getAvailableExternalMemorySize() {
if(externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else {
return ERROR;
}
}
static public long getTotalExternalMemorySize() {
if(externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
} else {
return ERROR;
}
}
static public String formatSize(long size) {
String suffix = null;
if (size >= 1024) {
suffix = "KiB";
size /= 1024;
if (size >= 1024) {
suffix = "MiB";
size /= 1024;
}
}
StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
int commaOffset = resultBuffer.length() - 3;
while (commaOffset > 0) {
resultBuffer.insert(commaOffset, ',');
commaOffset -= 3;
}
if (suffix != null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
分享到:
相关推荐
Android的外部存储主要指的是SD卡或者手机内置的外部存储空间,它可以被所有应用共享,并且用户可以通过USB等方式访问这些数据。外部存储通常用于保存大文件,如图片、音频、视频等,或者是需要与其他应用共享的数据...
在Android系统中,获取手机剩余内部存储大小是开发者经常需要进行的操作,这有助于优化应用程序的存储管理,确保应用不会超出可用空间而导致用户困扰。本文将详细介绍如何通过编程方式获取手机内部存储的剩余空间,...
博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录
内部存储是设备内置的存储空间,而外部存储通常指的是可移除的SD卡,但在现代Android设备中,外部存储可能也指设备提供的额外内置存储。 1. **获取内部存储路径**: 内部存储路径通常是 `/data/data/包名`,其中...
Android系统通常将存储分为两个主要部分:内部存储(Internal Storage)和外部存储(External Storage)。内部存储是设备自带的非易失性内存,通常用于应用程序的数据和用户配置。外部存储则包括可移除的SD卡以及...
然而,需要注意的是,外部存储空间可能受到用户权限的影响,因此在访问时要确保拥有必要的权限,如`Manifest.permission.WRITE_EXTERNAL_STORAGE`。 总之,理解并正确使用`StatFs`类是Android开发中不可或缺的一...
获取外部存储的特定目录,如下载目录,可以使用`Environment.getExternalStoragePublicDirectory()`,例如获取下载目录: ```java File externalFile = new File(Environment.getExternalStoragePublicDirectory...
Android为开发者提供了多种文件存储方式,以适应不同的需求,包括内部存储和外部存储(通常指SDCard)。这两种存储方式各有特点,适用场景不同,下面我们将详细探讨这两种存储机制。 1. **内部存储** - **定义**:...
标题中的“得SDCard,手机,存储空间,可用空间(付源码)”指的是一个关于Android平台下获取SDCard(外部存储卡)以及手机内部存储空间,并检查其可用空间的程序。这个程序对于开发者来说非常实用,因为它允许他们监控...
尤其是对于内置存储、SD卡以及OTG(On-The-Go)外部存储设备的访问,往往需要特殊的方法。在标题和描述中提到,通过反射机制可以解决这个问题,实现对这些存储设备路径的获取以及空间信息的查询。接下来,我们将深入...
外部存储指的是设备上的公共存储区域,如SD卡或内置存储的一部分,这部分存储空间对所有应用都是共享的。由于外部存储的特殊性,其使用方法与内部存储有所不同。 ##### 3.1 获取外部存储路径 获取外部存储路径可以...
外部存储器通常指的是SD卡或者手机内置的外部存储空间。 在AndroidManifest.xml文件中,我们需要添加相应的权限来允许应用访问外部存储: ```xml <uses-permission android:name="android.permission.READ_...
外部存储不同于内部存储,它不仅为应用程序提供了更大的存储空间,而且允许用户通过USB设备或者文件管理器共享数据。在Android应用开发中,正确地使用外部存储对于提供良好的用户体验至关重要。 标题“android外部...
在Android系统中,内部存储空间通常指的是设备上用于应用程序数据、首选项和其他私有文件的存储区域。了解如何读取内部存储空间的大小对于开发者来说是至关重要的,可以帮助优化应用程序的资源管理和用户反馈。以下...
在描述中提及的“Android数据存储(内置sdcard)案例1”,可能是一个实际的代码示例,展示了如何在内部存储中创建和读取文件。通常,我们可以使用`getFilesDir()`或`getCacheDir()`方法获取内部存储的文件路径,然后...
至于存储空间,可以使用`StatFs`类来获取内部或外部存储的可用空间: ```java // 获取内部存储 StatFs internalStatFs = new StatFs(Environment.getDataDirectory().getPath()); long blockSizeBytes = ...
在Android系统中,通常有两种类型的存储:内部存储(Internal Storage)和外部存储(External Storage)。内部存储主要用于应用程序私有的数据,而外部存储通常是SD卡,用于共享媒体文件和其他可公开访问的数据。 #...
Android系统将存储分为内部存储(Internal Storage)和外部存储(External Storage)。这里的"外部存储"并不特指SDcard,而是指除设备内置存储之外的所有可移除存储,包括物理上的TF卡和某些设备上的USB OTG存储。...
然后,从Android API 29(Android 10)开始,推荐使用`MANAGE_EXTERNAL_STORAGE`权限来访问所有外部存储空间。如果需要此权限,需要在AndroidManifest.xml中添加: ```xml <uses-permission android:name="android....