我尝试使用getDataDirectory().getPath()
和getRootDirettory().getAbsolutePath()
检查Android手机上的可用空间,我得到了这些结果,
使用getRootDirectory().getAbsolutePath()
StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
Log.w("Path", String.valueOf(Environment.getRootDirectory()) );
Log.w("Path", Environment.getRootDirectory().getAbsolutePath());
long free_memory = statFs.getAvailableBlocksLong() * statFs.getBlockSizeLong();
Log.d("Available byte by Environment.getRootDirectory().getAbsolutePath(): ", String.valueOf(free_memory/1048576));
Logcat:
W / Path:/ system
W / Path:/ system
W进行Environment.getRootDirectory()/可字节。getAbsolutePath():: 91
使用getRootDirectory().getPath()
statFs = new StatFs(Environment.getDataDirectory().getPath());
Log.w("Path", String.valueOf(Environment.getDataDirectory()) );
Log.w("Path", Environment.getDataDirectory().getPath());
long free_memory02 = statFs.getAvailableBlocksLong() * statFs.getBlockSizeLong();
Log.d("Available byte by Environment.getDataDirectory().getPath(): ", String.valueOf(free_memory02/1048576));
Logcat:
W / Path:/ data
W / Path:/ data
W /可用字节由Environment.getDataDirectory()。getPath():: 21426 MB或20.924 GB
但是当我通过手机中的设置检查可用空间时,只显示: 20.34 GB
检查手机中可用空间的最佳准确方法是什么?为什么getRootDirectory().getAbsolutePath()
和getDataDirectory.getPath()
没有给出相同的空间?
答案 0 :(得分:2)
检查可用空间的最佳准确方法是什么
最好使用 Environment.getExternalStorageDirectory()
来检查可用内存。
内部存储空间中有 different partitions 。
/ data 分区:仅包含用户数据。的 //getDataDirectory()
强>
/ system 分区:拥有核心Android操作系统。的 //getRootDirectory()
强>
为什么getRootDirectory()。getAbsolutePath()和 getDataDirectory()。getPath()不给出相同的空格?
因为它们是不同的目录。
您可以使用
final StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long totalinternal = (long) stat.getBlockSize() * (long) stat.getBlockCount();
long available = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();