Android Adoptable Storage - 获得免费空间

时间:2016-06-30 08:14:53

标签: android android-6.0-marshmallow android-sdcard android-internal-storage

我有一个使用3种存储的应用程序:内部存储,外部SD,如果版本> = 6.0,则为formatted as internal的SD。 我使用getExternalFilesDirs()获取外部SD路径,getFilesDir()使用内部存储,Environment.getExternalStorageDirectory()采用(=内部)SD路径。 现在,如果我想获得免费空间,就像这样:

StatFs statFs = new StatFs(storageDir);
long blocks = statFs.getAvailableBlocks();
return Formatter.formatFileSize(this, blocks * statFs.getBlockSize()); 

适用于内部存储和外部SD,但对于采用的SD,它返回与内部存储相同的值,即没有额外SD空间的纯内部存储。

现在我的问题是:有没有办法让内部+采用SD组成的自由空间?据我所知,我甚至不知道是否存在已采用的SD,因为getExternalFilesDirs()始终包含/storage/emulated/0的路径(这是Environment.getExternalStorageDirectory()的绝对路径我测试过的设备,无论是否安装。

编辑:我最后只检查getExternalStorageDirectory()的可用空间是否大于getFilesDir() + 100MB,因为我想使用采用的SD作为替代存储,如果有的话我不需要它它上面没有自由空间,但这不可能是它的工作方式,是吗?

0 个答案:

没有答案