शीर्षक शीर्षक के रूप में, मुझे बाहरी संग्रहण में फ़ाइलों को लिखने में परेशानी हो रही है। मेरा डीबग डिवाइस एक नेक्सस 5 है। बात यह है कि, मैं डिवाइस से पूरी तरह से फ़ाइलों को पढ़ने में सक्षम हूं (मैं डाउनलोड फ़ोल्डर में से किसी के साथ प्रयास कर रहा हूं) लेकिन उन्हें लिख नहीं सकता। मुझे पता है कि डिवाइस को कंप्यूटर से कनेक्ट नहीं होने पर मुझे यह करना होगा। लेकिन यह या तो काम नहीं करता है।एंड्रॉइड में बाहरी स्टोरेज में फ़ाइलों को लिखना
वास्तव में, मैंने इसे लिखने से पहले एसडी कार्ड की स्थिति पढ़ने की कोशिश की है (जो निश्चित रूप से काम नहीं करता है)। जब डिवाइस मेरे पीसी से कनेक्ट किया गया था या नहीं तो राज्य "घुड़सवार" के रूप में दिखाया गया था। और मैंने बिना किसी सफलता के राज्य को Environment.MEDIA_MOUNTED_READ_ONLY
और Environment.MEDIA_MOUNTED
की तुलना की। मेरा डिवाइस इनमें से किसी भी राज्य में नहीं है।
एक चीज जो आपको जाननी चाहिए कि मेरे फोन में बाहरी एसडी कार्ड नहीं है, क्योंकि यह आंतरिक है। इसके परिणामस्वरूप मेरे डिवाइस में बाह्य भंडारण के लिए "/ भंडारण/नकली/0/..." निर्देशिका होती है।
मैं यह भी कहना होगा कि मैं अपने Android प्रकट में निम्नलिखित टैग को लागू किया है:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
मैं क्या हो रहा हो सकता है के लिए किसी भी सुराग नहीं है। एक और चीज जो मदद कर सकती है वह है कि मैंने Winrar (एंड्रॉइड के लिए) के साथ फ़ाइलों को प्रबंधित करने का प्रयास किया है और मैं अपने पीसी से जुड़े डिवाइस के साथ-साथ इसे कनेक्ट किए बिना फ़ाइलों को हटाने में सक्षम हूं। तो मुझे नहीं पता कि क्या करना है।
कोड जो मैं फ़ाइल लिखने के लिए उपयोग कर रहा हूं वह निम्नलिखित है। ध्यान रखें कि यह, एक छवि फ़ाइल (जो यह करता है) पढ़ना चाहिए यह एक स्ट्रिंग में कनवर्ट करते हैं, इसे वापस परिवर्तित एक छवि में और फिर डाउनलोड फ़ोल्डर में सहेजें:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/base_image.jpg");
// Reading a Image file from file system
FileInputStream imageInFile = new FileInputStream(file);
byte imageData[] = new byte[(int) file.length()];
imageInFile.read(imageData);
// Converting Image byte array into Base64 String
String imageDataString = encodeImage(imageData);
// Converting a Base64 String into Image byte array
byte[] imageByteArray = decodeImage(imageDataString);
File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "converted_image.jpg");
//Write a image byte array into file system
FileOutputStream imageOutFile = new FileOutputStream(newFile);
imageOutFile.write(imageByteArray);
imageInFile.close();
imageOutFile.close();
मुझे क्या करना चाहिए?
क्या आप वाकई फ़ाइल लिखने के लिए बाहर निकलते हैं? – Raghunandan
मैं एक नई फाइल बना रहा हूं। या, कम से कम, मैं यही कोशिश कर रहा हूं। मुझे इसे बनाने की कोशिश करते समय फ़ाइल नहीं मिली और ईएसीसीईएस (अनुमति अस्वीकृत) त्रुटि प्राप्त हुई। यह मेरी मुख्य समस्या है। क्या मुझसे कुछ गलत हो रही है? – blastervla