Android:为什么计算的可用空间与Android显示的可用空间不同

时间:2015-05-20 13:37:17

标签: android

我对Android中的(免费)可用空间有疑问。如果我打开我的Android设置,我可以看到我的外部SD卡有大约9GB的可用空间。但如果我在Android应用程序中进行一些计算,我只能得到1GB。我使用以下几行:

double freeSpace = stats.getAvailableBlocks() * stats.getBlockSize() / 1024;

Environment.getExternalStorageDirectory().getUsableSpace();

这是什么原因?我只想获得可以使用的SD卡上的可用空间。

1 个答案:

答案 0 :(得分:0)

在大多数现代Android设备上,外部存储是内置闪存的一部分,可通过USB线访问。虽然很久以前外部存储往往是通过微型SD卡实现的,但在4年内情况并非如此,而且今天相当罕见。因此,getExternalStorageDirectory()可能不是您想要的。

如果您的设备运行Android 4.4+ - 特别是如果它附带Android 4.4+ - 那么如果getExternalFilesDirs()返回2个以上的条目,则第二个和后续位置位于可移动存储上。原则上,您可以使用您的问题中的技术来尝试确定卡上的可用空间。话虽如此,我不知道这是否有效,因为我从未尝试过。

总体而言,可移动媒体主要用于设备制造商和预安装应用程序,而不是普通的SDK应用程序。