程序化检查SD卡上是否有足够的内存。

6

我的应用程序将文件保存在SD卡上,但在保存文件之前,我需要检查是否有可用的内存。我需要检查SD卡上有多少可用内存。

类似于:

if(MemoryCard.getFreeMemory()>20Mb)
{
    saveFiles();
}
else
{
    Toast.makeText(this, "Not enough memory", 100).show();
}
3个回答

7
StatFs class 

您可以在这里使用,为您的内部和外部目录提供路径并计算总空间、可用空间和剩余空间。
StatFs memStatus = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)memStatus.getBlockSize() * (long)memStatus.getAvailableBlocks();

详细信息请参阅文档bytesAvailable以字节为单位,您可以将其转换为任何格式。


如何从Android应用程序以编程方式检查Google Drive上的可用空间。 - Raa

4

来源:http://groups.google.com/group/android-developers/browse_thread/thread/ecede996463a4058

这是一个关于Android技术的讨论。在这个讨论中,有人提到了如何在Android Studio中使用Gradle来构建和管理项目。他们还讨论了如何在应用程序中实现本地代码,并给出了一些有用的链接。此外,还讨论了如何使用ProGuard在应用程序中进行混淆,以提高安全性。

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;

你可以使用 stat.getAvailableBytes(); 来获取 Android 4.3+ (API 18+) 的可用字节数。 - stevo.mit

1
对于Android 4.3+(API级别:18+)
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = getAvailableBytes();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接