StatFs方法getTotalBytes和getFreeBytes没有返回正确的值

时间:2019-05-24 04:44:49

标签: java android

我正在编写一个Android应用程序,其中需要显示总内部存储空间和可用空间。我使用了StatFs类,并且使用了方法getTotalBytes()getFreeBytes()。我处理结果并将其转换为GB。但是这些方法给出的结果与实际值不符(由许多文件管理应用程序找到)。

我尝试了不同的方法来返回存储空间,但是我总是得到相同的结果:它们不匹配。

private final static double noBytesInOneGB = 1073741824.0;
StatFs stat = new StatFs(Environment.getDataDirectory().getAbsolutePath());
double totalSpaceInGB = stat.getTotalBytes() / noBytesInOneGB;
double freeSpaceInGB = stat.getFreeBytes() / noBytesInOneGB;

如果我在手机上运行该应用程序,则此代码返回的总存储为49.55 GB,免费存储为40.02 GB。如果我使用文件管理器应用程序,则说总存储为53.32 GB,免费存储为42.37 GB。

0 个答案:

没有答案