ठीक है, यह वास्तव में एक प्रश्न नहीं है, क्योंकि मैं वास्तव में अपने कोड पर "अटक गया" नहीं हूं, लेकिन मुझे बाहरी स्टोरेज और File.createTempFile() विधि तक पहुंचने के संबंध में एंड्रॉइड एपीआई के लिए कुछ अजीब व्यवहार मिला है, और मैं समझना चाहता हूं कि क्या हो रहा है ...Android पर अस्थायी फ़ाइलों को बनाने का सबसे अच्छा तरीका क्या है?
कृपया ध्यान दें कि मेरा मैनिफेस्ट <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
शामिल नहीं है।
भाग 1:
मैं निम्नलिखित कोड जो एक आकर्षण के रूप में काम करता है:
File tempFile = new File(Environment.getExternalStorageDirectory(),
"my_temp_file.png");
यह मेरे लिए एक अस्थायी फ़ाइल बनाता है, और मैं datas लिख सकते हैं बिना किसी परेशानी के।
प्रश्न 1: यह क्यों काम करता है, क्योंकि मुझे अपने एसडीकार्ड पर लेखन अधिकार नहीं होना चाहिए?
भाग 2:
मैं createTempFile
जो अस्थायी फ़ाइल बनाने के लिए सरकारी तरीका है का उपयोग करने के लिए अपने कोड बदलने की कोशिश की है। तो मैं कोशिश की है:
File tempFile = File.createTempFile("my_temp", "png",
Environment.getExternalStorageDirectory());
और मेरे Manifest.xml में WRITE_EXTERNAL_STORAGE गयी। अंदाज़ा लगाओ ? यह काम नहीं करता है, और मैं प्राप्त एक java.io.IOException
:
09-07 14:07:29.061: E/_CLOG(19982): java.io.IOException: Permission denied
09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createNewFileImpl(Native Method)
09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createNewFile(File.java:1257)
09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createTempFile(File.java:1322)
09-07 14:07:29.061: E/_CLOG(19982): at com.(...).onClick(ProfileImageUpdater.java:58)
प्रश्न 2: क्यों यह काम नहीं करता है, जबकि imho यह होना चाहिए?
क्या आपने दो बार जांच की थी? –
हाँ बिल्कुल :) दोनों मामलों –
आप कौन से एंड्रॉइड एपीआई का उपयोग कर रहे हैं? मेरा मानना है कि अगर कोई एपीआई स्तर 4 पर सेट करता है तो कुछ अनुमति – tomi