2011-08-04 21 views
6

मैं निम्नलिखित मेरी एंड्रॉयड प्रकट निर्धारित किया है:sd.canWrite() हमेशा रिटर्न झूठी

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

मैं अपने गतिविधि में निम्नलिखित है:

File sd = Environment.getExternalStorageDirectory(); 
boolean can_write = sd.canWrite(); 

एसडी रिटर्न/MNT/sdcard

मैं अपने डिवाइस (ईवो 3 डी) पर एमुलेटर नहीं परीक्षण कर रहा हूं। एसडी कार्ड घुड़सवार है। यह तब होता है जब प्रभारी केवल मोड और जब यूएसबी केबल प्लग नहीं किया जाता है। Google पर विभिन्न पेज और स्टैक पर पोस्ट दिखाते हैं कि एसडी कार्ड लिखने योग्य है या नहीं, इसलिए मुझे कुछ याद आना चाहिए।

अद्यतन:

मैं निम्नलिखित कोड का प्रयास करें और यह IOException अनुमति नहीं दी फेंकता है।

File TestFile = new File(sd + "/testfile.txt"); 
    try { 
     boolean result = TestFile.createNewFile(); 
     if(result) 
     { 
      Log.i("tag","successfully created file"); 
     } else { 
      Log.i("tag","failed to create file"); 
     } 
    } catch (IOException e) { 
     Log.e("tag",e.toString() + " " + TestFile); 
     return false; 
    } 

मैं अपने sdcard स्वरूपित है, यह फिर से बढ़ गया है, और फोन रिबूट और अब भी वही त्रुटि की है।

अद्यतन

जाहिर है यह मेरी अपनी अज्ञानता है कि यह विफल वजह से है। मेरे पास मेरे मैनिफेस्ट के गलत खंड में मेरी अनुमतियां ब्लॉक थीं। धन्यवाद फिर से :)

+0

आमतौर पर यह शिकायत करता है, तो कुछ गलत स्थान पर है कारण पता नहीं है के अनुसार है पता चलता है। आप अनुमति कहाँ डाल रहे थे? –

+0

उपयोग-पर्समिशन कहां रखा जाए? पहले ही, आपका बहुत धन्यवाद। – twlkyao

उत्तर

13

मैं sd.canWrite() का उपयोग नहीं होगा, वास्तव में, मैं कुछ इस तरह का प्रयोग करेंगे:

String state = Environment.getExternalStorageState(); 
if (Environment.MEDIA_MOUNTED.equals(state)) { 
    Log.d("Test", "sdcard mounted and writable"); 
} 
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
    Log.d("Test", "sdcard mounted readonly"); 
} 
else { 
    Log.d("Test", "sdcard state: " + state); 
} 

यहाँ से लिया: http: //www.xinotes.org/notes/ध्यान दें/1270/

+1

आप कमाल हैं। धन्यवाद :) किसी भी स्पष्टीकरण के रूप में क्यों .canWrite() विधि अपेक्षित के रूप में काम नहीं करता है? – matt

0

canWrite() विधि डिफ़ॉल्ट रूप से निर्देशिकाओं के लिए झूठी यह मेरा अवलोकन के पीछे यह

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