首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何获得外部sd卡的存储?

Android:如何获得外部sd卡的存储?
EN

Stack Overflow用户
提问于 2015-04-27 12:47:12
回答 3查看 2K关注 0票数 0

在我的设备中,我有32 SD的内存和64 SD的SD卡。我喜欢使用此方法获得外部空闲大小(基于这个线程Android get free size of internal/external memory):

代码语言:javascript
复制
public static 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 0;
    }
}

当我运行这段代码时,它只显示内部内存的空闲存储。为什么它没有显示外部SD卡的大小?在设备存储,我有11 On的免费和外部SD卡有40 on的免费。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-28 06:10:02

我找到了一个读取可移动sd卡存储的解决方案:

该方法以字节形式保存可移动sd卡上的空闲内存大小.

代码语言:javascript
复制
public static long getFreeExternalMemorySize() {
        String secStore = System.getenv("SECONDARY_STORAGE");
        File path = new File(secStore);
        StatFs stat = new StatFs(path.getPath());

        long blockSize = stat.getBlockSize();
        long availableBlocks = stat.getAvailableBlocks();

        return availableBlocks * blockSize;
}
票数 0
EN

Stack Overflow用户

发布于 2015-04-27 12:52:00

问题是没有api可以访问android上的外部sd卡。在android >= 4.4上,外部sd卡无法写入。

您唯一能做的事情(非常特殊,不推荐用于公共应用程序,但可以在受限的环境中完成!),如果您确定设备是

票数 0
EN

Stack Overflow用户

发布于 2015-04-28 06:47:17

在阅读以下链接后,您可以得到一个想法。

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

用于处理sd卡。在访问之前检查sd卡是否已安装。

http://developer.android.com/training/basics/data-storage/files.html#WriteExternalStorage

检查sd卡是可写和可读的。

http://developer.android.com/training/basics/data-storage/files.html#GetFreeSpace

以获得sdcard或内部存储中的空闲空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29896239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档