मैं अपने डिवाइस के आंतरिक / बाह्य भंडारण पर मुफ्त मेमोरी का आकार प्रोग्रामेटिक रूप से प्राप्त करना चाहता हूं। मैं इस कोड का उपयोग कर रहा हूँ:
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
Log.e("","Available MB : "+megAvailable);
File path = Environment.getDataDirectory();
StatFs stat2 = new StatFs(path.getPath());
long blockSize = stat2.getBlockSize();
long availableBlocks = stat2.getAvailableBlocks();
String format = Formatter.formatFileSize(this, availableBlocks * blockSize);
Log.e("","Format : "+format);
और जो परिणाम मुझे मिल रहा है वह है:
11-15 10:27:18.844: E/(25822): Available MB : 7572
11-15 10:27:18.844: E/(25822): Format : 869MB
समस्या यह है कि मैं SdCard की मुफ्त मेमोरी प्राप्त करना चाहता हूं जो 1,96GB
अभी है। मैं इस कोड को कैसे ठीक कर सकता हूं ताकि मुझे मुफ्त आकार मिल सके?