`
zxl_ong
  • 浏览: 128571 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android手机内部存储空间和外部存储空间获取代码

阅读更多
以下代码片段转载自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中的内部存储和外部存储

    Android的外部存储主要指的是SD卡或者手机内置的外部存储空间,它可以被所有应用共享,并且用户可以通过USB等方式访问这些数据。外部存储通常用于保存大文件,如图片、音频、视频等,或者是需要与其他应用共享的数据...

    获取手机剩余内部存储大小

    在Android系统中,获取手机剩余内部存储大小是开发者经常需要进行的操作,这有助于优化应用程序的存储管理,确保应用不会超出可用空间而导致用户困扰。本文将详细介绍如何通过编程方式获取手机内部存储的剩余空间,...

    Android获取手机所有文件存储路径

    博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录

    Android 获取内外置存储卡

    内部存储是设备内置的存储空间,而外部存储通常指的是可移除的SD卡,但在现代Android设备中,外部存储可能也指设备提供的额外内置存储。 1. **获取内部存储路径**: 内部存储路径通常是 `/data/data/包名`,其中...

    Android 通过反射调用获取内置存储和外置sd卡根路径(适用于各个版本)

    Android系统通常将存储分为两个主要部分:内部存储(Internal Storage)和外部存储(External Storage)。内部存储是设备自带的非易失性内存,通常用于应用程序的数据和用户配置。外部存储则包括可移除的SD卡以及...

    Android之获取手机内部及sdcard存储空间的方法

    然而,需要注意的是,外部存储空间可能受到用户权限的影响,因此在访问时要确保拥有必要的权限,如`Manifest.permission.WRITE_EXTERNAL_STORAGE`。 总之,理解并正确使用`StatFs`类是Android开发中不可或缺的一...

    Android私有储存文件和外部储存文件读写(适配6.0以上权限,不考虑SD卡)

    获取外部存储的特定目录,如下载目录,可以使用`Environment.getExternalStoragePublicDirectory()`,例如获取下载目录: ```java File externalFile = new File(Environment.getExternalStoragePublicDirectory...

    Android文件内部存储和SDCard存储

    Android为开发者提供了多种文件存储方式,以适应不同的需求,包括内部存储和外部存储(通常指SDCard)。这两种存储方式各有特点,适用场景不同,下面我们将详细探讨这两种存储机制。 1. **内部存储** - **定义**:...

    得SDCard,手机,存储空间,可用空间(付源码)

    标题中的“得SDCard,手机,存储空间,可用空间(付源码)”指的是一个关于Android平台下获取SDCard(外部存储卡)以及手机内部存储空间,并检查其可用空间的程序。这个程序对于开发者来说非常实用,因为它允许他们监控...

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

    尤其是对于内置存储、SD卡以及OTG(On-The-Go)外部存储设备的访问,往往需要特殊的方法。在标题和描述中提到,通过反射机制可以解决这个问题,实现对这些存储设备路径的获取以及空间信息的查询。接下来,我们将深入...

    android 内部存储读写 sd卡存储

    外部存储指的是设备上的公共存储区域,如SD卡或内置存储的一部分,这部分存储空间对所有应用都是共享的。由于外部存储的特殊性,其使用方法与内部存储有所不同。 ##### 3.1 获取外部存储路径 获取外部存储路径可以...

    狂刷Android范例之3:读写外部存储设备

    外部存储器通常指的是SD卡或者手机内置的外部存储空间。 在AndroidManifest.xml文件中,我们需要添加相应的权限来允许应用访问外部存储: ```xml <uses-permission android:name="android.permission.READ_...

    android外部存储

    外部存储不同于内部存储,它不仅为应用程序提供了更大的存储空间,而且允许用户通过USB设备或者文件管理器共享数据。在Android应用开发中,正确地使用外部存储对于提供良好的用户体验至关重要。 标题“android外部...

    08读取内部存储空间大小

    在Android系统中,内部存储空间通常指的是设备上用于应用程序数据、首选项和其他私有文件的存储区域。了解如何读取内部存储空间的大小对于开发者来说是至关重要的,可以帮助优化应用程序的资源管理和用户反馈。以下...

    Android数据存储(内置sdcard1)

    在描述中提及的“Android数据存储(内置sdcard)案例1”,可能是一个实际的代码示例,展示了如何在内部存储中创建和读取文件。通常,我们可以使用`getFilesDir()`或`getCacheDir()`方法获取内部存储的文件路径,然后...

    android获取手机内存大小

    至于存储空间,可以使用`StatFs`类来获取内部或外部存储的可用空间: ```java // 获取内部存储 StatFs internalStatFs = new StatFs(Environment.getDataDirectory().getPath()); long blockSizeBytes = ...

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

    在Android系统中,通常有两种类型的存储:内部存储(Internal Storage)和外部存储(External Storage)。内部存储主要用于应用程序私有的数据,而外部存储通常是SD卡,用于共享媒体文件和其他可公开访问的数据。 #...

    android手机外置SDcard(TF卡)获取方法

    Android系统将存储分为内部存储(Internal Storage)和外部存储(External Storage)。这里的"外部存储"并不特指SDcard,而是指除设备内置存储之外的所有可移除存储,包括物理上的TF卡和某些设备上的USB OTG存储。...

    android获取SDcard内存空间

    然后,从Android API 29(Android 10)开始,推荐使用`MANAGE_EXTERNAL_STORAGE`权限来访问所有外部存储空间。如果需要此权限,需要在AndroidManifest.xml中添加: ```xml <uses-permission android:name="android....

Global site tag (gtag.js) - Google Analytics