在 MarshMallow 中获取内部和外部内存大小
Get Internal and External Memory size in MarshMallow
我试图在我的 application.My 代码中显示内部和外部(SD 卡)内存的大小对于 kitkat 和以下 api 版本工作正常,但我的应用程序在 Marshmallow 或棒棒糖。这是我的代码...
public static long getAvailableInternalMemorySize()
{
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
public static long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
public static long getAvailableExternalMemorySize() {
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();
long total = availableBlocks * blockSize;
return total;
}
public static long getTotalExternalMemorySize() {
String secStore = System.getenv("SECONDARY_STORAGE");
File path = new File(secStore);
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getBlockCount();
long total = availableBlocks * blockSize;
return total;
}
你能告诉我在以上 api 版本中获取内存大小的解决方案吗...?
在棒棒糖或棉花糖中你必须使用
Environment.getExternalStorageDirectory().getAbsolutePath();
获取外部存储路径而不是System.getenv("SECONDARY_STORAGE");
在 >android 5.0
中获取外部和内部存储请参考 beolw 代码
public static String getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return formatSize(totalBlocks * blockSize);
}
public static String getAvailableExternalMemorySize() {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return formatSize(availableBlocks * blockSize);
}
我试图在我的 application.My 代码中显示内部和外部(SD 卡)内存的大小对于 kitkat 和以下 api 版本工作正常,但我的应用程序在 Marshmallow 或棒棒糖。这是我的代码...
public static long getAvailableInternalMemorySize()
{
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
public static long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
public static long getAvailableExternalMemorySize() {
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();
long total = availableBlocks * blockSize;
return total;
}
public static long getTotalExternalMemorySize() {
String secStore = System.getenv("SECONDARY_STORAGE");
File path = new File(secStore);
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getBlockCount();
long total = availableBlocks * blockSize;
return total;
}
你能告诉我在以上 api 版本中获取内存大小的解决方案吗...?
在棒棒糖或棉花糖中你必须使用
Environment.getExternalStorageDirectory().getAbsolutePath();
获取外部存储路径而不是System.getenv("SECONDARY_STORAGE");
在 >android 5.0
中获取外部和内部存储请参考 beolw 代码public static String getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return formatSize(totalBlocks * blockSize);
}
public static String getAvailableExternalMemorySize() {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return formatSize(availableBlocks * blockSize);
}