Android设备总内部存储

Android设备总内部存储,android,Android,我试图找出一台设备的总存储空间。 我试过: StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); statFs.getTotalBytes(); statFs.getBlockCountLong() * statFs.getBlockSizeLong(); 当我知道我的设备有16GB的总存储空间(可访问和不可访问)时,这两种方法返回相同的数字,即~2GB 如何获得真实的存储大小?不仅是可用空

我试图找出一台设备的总存储空间。 我试过:

StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
statFs.getTotalBytes();
statFs.getBlockCountLong() * statFs.getBlockSizeLong();
当我知道我的设备有16GB的总存储空间(可访问和不可访问)时,这两种方法返回相同的数字,即~2GB


如何获得真实的存储大小?不仅是可用空间或可用空间,还有设备上每一个字节的最后一部分。

您可能需要的是:

StatFs statFs = new StatFs(Environment.getDataDirectory().getPath()); 
因为
getRootDirectory()获取包含核心Android操作系统的“系统”分区


然后,另一种方法将获得总存储空间…

按照您的建议,我使用了这个方法,得到了12GB(这是一个很大的改进;),我想这是“免费使用”分区,因为它不是16GB。。您认为我应该将两个分区相加以获得总存储空间吗?或者有更好的方法吗?我只是在读这篇文章,我假设Android方法不允许你得到“真实”的数字,因为一些内存是“正在使用的”。此外,还有一篇文章,其中解释了Android中的3种内存类型,请查看。。。我想你可以对两个分区求和,但我不知道是否有办法得到“真实”数字。。。