【问题标题】:Android - get list of all available storageAndroid - 获取所有可用存储的列表
【发布时间】:2013-02-01 11:21:13
【问题描述】:

我正在从 Internet 将数据下载到我的应用程序中。如果我指定内部存储器(=Environment.getExternalStorageDirectory()),我可能会遇到“空间不足”的问题。 SD卡安装地址总是因手机而异,所以我想让用户选择他喜欢的位置,在哪里存储下载的数据。有什么方法,如何获得所有可用的存储选项,可以使用哪些? (一般情况下,我想在内部存储器或插入 sdcard 之间进行选择)。

谢谢

【问题讨论】:

标签: android storage


【解决方案1】:

请检查以下代码。

计算可用的内部存储器

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;

计算总内部存储内存

StatFs stat = new StatFs(Environment.getDataDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;

计算可用的外部存储内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getFreeBlocks() * (long)stat.getBlockSize();
long megAvailable = bytesAvailable / 1048576;

计算外部存储总内存

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;

注意:首先您需要计算可用内存并显示给用户他/她想要下载文件的位置。

【讨论】:

  • 谢谢,但我有三星 Android 手机,外部存储告诉我存储,它是手机内置的。我无法找到插入的 SD 卡的位置和容量。
  • 简而言之,“外部存储”更像是“共享存储”,它可能由实际的 SD 卡实现,也可能不实现。有些设备有一个额外的 SD 卡,不用作外部存储。如果这是您所要求的,那么目前没有用于访问其挂载位置的公共 API,并且它因设备而异。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
  • 2018-07-02
  • 1970-01-01
  • 2017-02-12
  • 2015-10-25
  • 2015-03-10
  • 1970-01-01
相关资源
最近更新 更多