gpt4 book ai didi

android - 如何获取外部存储 SD 卡大小(已安装 SD 卡)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:58:54 28 4
gpt4 key购买 nike

Link :I worked on based on this Link

我添加了这一行来查找尺寸(内部和外部)尺寸,

return availableExternalMemorySize/(1024*1024);

我在我的平板电脑上测试过。我得到内部和外部 SD 卡大小,

在内部存储中:

  1. 总内存 --1007
  2. 可用内存 --683

在外部存储中:

  1. 总内存 -- 1763
  2. 可用内存 -- 1554

但在平板电脑中,我看到了设置。外部存储大小为 8GB。但是当我以编程方式测试时,它显示了 1.7 GB。

查找外部存储大小的过程是什么?

最佳答案

要获取外部 SD 卡的可用“空闲”空间以显示与菜单->设置->SD 卡和手机存储的号码一致的号码,请使用以下代码:

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
double sdAvailSize = (double)stat.getAvailableBlocks()
* (double)stat.getBlockSize();
//One binary gigabyte equals 1,073,741,824 bytes.
double gigaAvailable = sdAvailSize / 1073741824;

以下是获取内部存储大小的方法:

 StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());        
long blockSize = statFs.getBlockSize();
long totalSize = statFs.getBlockCount()*blockSize;
long availableSize = statFs.getAvailableBlocks()*blockSize;
long freeSize = statFs.getFreeBlocks()*blockSize;

以下是获取外部存储大小(SD 卡大小)的方法:

 StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());        
long blockSize = statFs.getBlockSize();
long totalSize = statFs.getBlockCount()*blockSize;
long availableSize = statFs.getAvailableBlocks()*blockSize;
long freeSize = statFs.getFreeBlocks()*blockSize;

简短的笔记

空闲 block :

The total number of blocks that are free on the file system, including reserved blocks (that are not available to normal applications).

可用 block :

The number of blocks that are free on the file system and available to applications.


检测SD卡是否挂载的方法如下:

 String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state))
{
// We can read and write the media
}
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
{
// We can only read the media
}
else
{
// No external media
}

相关文档:http://developer.android.com/reference/android/os/StatFs.html

关于android - 如何获取外部存储 SD 卡大小(已安装 SD 卡)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834964/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com