在我的设备中,我有32 SD的内存和64 SD的SD卡。我喜欢使用此方法获得外部空闲大小(基于这个线程Android get free size of internal/external memory):
public static long getAvailableExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
} else {
return 0;
}
}当我运行这段代码时,它只显示内部内存的空闲存储。为什么它没有显示外部SD卡的大小?在设备存储,我有11 On的免费和外部SD卡有40 on的免费。
发布于 2015-04-28 06:10:02
我找到了一个读取可移动sd卡存储的解决方案:
该方法以字节形式保存可移动sd卡上的空闲内存大小.
public static long getFreeExternalMemorySize() {
String secStore = System.getenv("SECONDARY_STORAGE");
File path = new File(secStore);
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}发布于 2015-04-27 12:52:00
问题是没有api可以访问android上的外部sd卡。在android >= 4.4上,外部sd卡无法写入。
您唯一能做的事情(非常特殊,不推荐用于公共应用程序,但可以在受限的环境中完成!),如果您确定设备是
发布于 2015-04-28 06:47:17
在阅读以下链接后,您可以得到一个想法。
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
用于处理sd卡。在访问之前检查sd卡是否已安装。
http://developer.android.com/training/basics/data-storage/files.html#WriteExternalStorage
检查sd卡是可写和可读的。
http://developer.android.com/training/basics/data-storage/files.html#GetFreeSpace
以获得sdcard或内部存储中的空闲空间。
https://stackoverflow.com/questions/29896239
复制相似问题