2011-01-25 12 views
11

पर सभी की कुल और उपलब्ध स्थान हो रही है, Android पर, वहाँ है:मेरी जानकारी के लिए एंड्रॉयड

  • ऐप्स और कैश
  • कुछ फोन (हटाने योग्य नहीं) पर
  • आंतरिक एसडी कार्ड
  • के लिए आंतरिक स्मृति संगीत और तस्वीरें (हटाने योग्य)

मैं एक जाँच लें कि वे मौजूद के साथ प्रत्येक के लिए कुल और उपलब्ध कैसे मिलता है के लिए बाहरी एसडी कार्ड (कुछ फोन एक आंतरिक एसडी कार्ड की जरूरत नहीं है)

+०१२३५१६४१०६

धन्यवाद

उत्तर

32

यहाँ है कि कैसे आप आंतरिक भंडारण आकार मिलता है:

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; 

लघु:

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; 

यहाँ कैसे आप बाह्य भंडारण आकार (एसडी कार्ड आकार) मिलता है नोट

नि: शुल्क ब्लॉक:

कि फाइल सिस्टम पर मुक्त हैं, आरक्षित ब्लॉक (कि सामान्य एप्लिकेशन के लिए उपलब्ध नहीं हैं) सहित ब्लॉक की कुल संख्या।

उपलब्ध ब्लॉक:

ब्लॉक कि फाइल सिस्टम और एप्लिकेशन के लिए उपलब्ध पर स्वतंत्र हैं की संख्या।


यहाँ का पता लगाने के लिए कैसे एसडी कार्ड लगाया गया है कि क्या है:।

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 
} 
+0

शानदार प्रतिक्रिया! फ्लैश मेमोरी ऑनबोर्ड पर नहीं, आंतरिक एसडी कार्ड का आकार पाने का कोई तरीका? और फ्रीसाइज और उपलब्ध आकार के बीच क्या अंतर है? – zsniperx

+0

मैंने आपके द्वारा आपके द्वारा मांगी गई जानकारी को शामिल करने के लिए अपना उत्तर संपादित कर लिया है। – inazaruk

+0

धन्यवाद! मेरे पास समय होने पर इसे जांच लेंगे। ग्रेट उत्तर – zsniperx

3
/************************************************************************************************* 
Returns size in MegaBytes. 

If you need calculate external memory, change this: 
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
to this: 
    StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());   
**************************************************************************************************/ 
    public int TotalMemory() 
    { 
     StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
     int Total = (statFs.getBlockCount() * statFs.getBlockSize())/1048576; 
     return Total; 
    } 

    public int FreeMemory() 
    { 
     StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
     int Free = (statFs.getAvailableBlocks() * statFs.getBlockSize())/1048576; 
     return Free; 
    } 

    public int BusyMemory() 
    { 
     StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath()); 
     int Total = (statFs.getBlockCount() * statFs.getBlockSize())/1048576; 
     int Free = (statFs.getAvailableBlocks() * statFs.getBlockSize())/1048576; 
     int Busy = Total - Free; 
     return Busy; 
    } 
+0

"टोटलमेमरी" का उपयोग करके मुझे -1166 लौटाता है ... भले ही मैं परिवर्तनीय प्रकारों को लंबे समय तक बदलूं, फिर भी यह मुझे 3071504384 देता है, जो मेरे पास नहीं है (~ 32 जीबी की तुलना में ~ 3 जीबी)। –

2

आंतरिक स्मृति Environment.getRootDirectory() के लिए getAbsolutePath() सही दृष्टिकोण नहीं है।

उपकरणों

Environment.getDataDirectory के सबसे पर भी

(), लेकिन फिर से संगत नहीं काम करता है।

बाहरी निर्देशिका दृष्टिकोण के लिए सही है। आंतरिक एमएनटी/एसडीकार्ड उपयोग

पर्यावरण.इस एक्सेलनेट स्टोरेज रिमूवेबल() के बीच अंतर करने के लिए।

लेकिन मैं अभी भी सोच रहा हूं कि कैसे सटीक आंतरिक मेमोरी प्राप्त करें। ओपन सोर्स असंगतता और कई संस्करणों के साथ।

+0

क्या आपको उत्तर मिला? –

0

अधिकांश फोन पर कुल ब्लॉक उपयोगकर्ता के लिए उपलब्ध ब्लॉक की संख्या (यानी कम सिस्टम स्टोरेज इत्यादि) हैं।मुझे अभी तक एक ऐसी विधि नहीं मिल रही है जो फोन पर स्टोरेज की कुल मात्रा उत्पन्न करेगी।

संबंधित मुद्दे