2013-06-14 8 views
8

मैं एंड्रॉइड ऐप बना रहा हूं जो DownloadManager का उपयोग कर रहा है। मैं फ़ाइल को फ़ोल्डर में डाउनलोड करना चाहता हूं जो मैंने बनाया था। लेकिन यह स्रोत संचालित नहीं करते हैं। और IllegalstateException होता है। मैं क्या कर सकता हूं ??एंड्रॉइड डाउनलोड मैनेजर अवैधस्टेटेक्सेप्शन निर्देशिका बनाने में असमर्थ

urlToDownload = Uri.parse(URL); 
List<String> pathSegments = urlToDownload.getPathSegments(); 
request = new DownloadManager.Request(urlToDownload); 
request.setTitle(Titlename); 
request.setDescription("MCPE STORE"); 
request.setDestinationInExternalPublicDir(
        Environment.getExternalStorageDirectory().getAbsolutePath() + 
        "/MCPE STORE", pathSegments.get(pathSegments.size()-1)); 

Environment.getExternalStoragePublicDirectory(
        Environment.getExternalStorageDirectory().getAbsolutePath() + 
        "/MCPE STORE").mkdir(); 
latestId = downloadManager.enqueue(request); 

उत्तर

10

मैं क्या कर सकता हूं?

आप the documentation for setDestinationInExternalPublicDir() पढ़ा, तो आप उस पहले पैरामीटर "निर्देशिका प्रकार to pass to getExternalStoragePublicDirectory(String)" है देखेंगे। Environment वर्ग पर परिभाषित स्थिरांक में से एक होना चाहिए, जैसे Environment.DIRECTORY_DOWNLOADS। आप कुछ और गुजर रहे हैं, जो समर्थित नहीं है।

+4

यदि मैं अपने ऐप के विशेष फ़ोल्डर में फ़ाइल डाउनलोड करना चाहता हूं तो मुझे क्या करना चाहिए? बस पर्यावरण वर्ग द्वारा परिभाषित निरंतर फ़ोल्डर में फ़ाइल डाउनलोड करें और फिर फ़ाइल को काट/पेस्ट करें? कोई उपाय? –

+0

@AliBehzadianNejad अगर मैं आपको सही मिला, तो मैंने इसे ऐसा किया: request.setDestinationInExternalPublicDir (Environment.DIRECTORY_DOWNLOADS, File.separator + folderName + File.separator + filename); –

5

अगर आप एक एमुलेटर उपयोग कर रहे हैं तो आप अपने manifest.xml

इसके अलावा में

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

है सुनिश्चित करें, सुनिश्चित करें कि आप के साथ एसडी कार्ड भंडारण यह बनाई गई हैं। यह डिफ़ॉल्ट रूप से नहीं बनाया गया है।

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