检查Android应用程序可用磁盘空间的正确方法?

检查Android应用程序可用磁盘空间的正确方法?,android,Android,我无法控制的第三方库正在以下位置保存文件: /storage/emulated/0/Android/data/[packagename]/files 我知道检查磁盘上可用存储的内部和外部存储的不同方法:。检查上述路径可用存储的正确方法是什么 内部、外部或某种组合,取决于所使用的设备及其存储类型。也就是说,在这张支票中应该考虑什么 或者,是使用更好的解决方案的粘性广播吗?如果您有路径,我相信您的答案可以在其中找到,请检查那里的代码示例。我选择了答案,因为它是一个有效的解决方案。但在我们的代码库中

我无法控制的第三方库正在以下位置保存文件:

/storage/emulated/0/Android/data/[packagename]/files
我知道检查磁盘上可用存储的内部和外部存储的不同方法:。检查上述路径可用存储的正确方法是什么

内部、外部或某种组合,取决于所使用的设备及其存储类型。也就是说,在这张支票中应该考虑什么


或者,是使用更好的解决方案的粘性广播吗?

如果您有路径,我相信您的答案可以在其中找到,请检查那里的代码示例。

我选择了答案,因为它是一个有效的解决方案。但在我们的代码库中发布我们如何处理这一点也很重要

我代表一位同事问了这个问题。我刚刚对他的解决方案进行了代码审查,下面是代码中关于他如何处理它的相关评论:

第三方库正在使用getExternalFilesDir确定 写信给。getExternalFilesDir的返回值是“主 外部存储器”。与其名称相反,“主外部存储器” 指内部存储器(!),因为它指的是 不是操作系统本身或已安装的应用程序内部的,但可以由 要写入的应用程序。它将与应用程序一起卸载。内部, 不是外部的。如果您想知道,实际的外部存储器, 与SD卡一样,被视为“辅助外部存储”(如 与此处使用的“主外部存储”相反)。


getExternalStorageDirectory();似乎为我返回/storage/emulated/0目录。接近,但不是完全接近。仍在研究如何找到一个函数,该函数将返回我发布的路径。因此,结果表明,这是由以下人员返回的文件夹:
long availableMb = applicationContext.getExternalFilesDir(null).getUsableSpace() / (1024 * 1024);