चूंकि आप बाहरी संग्रहण का उपयोग कर रहे हैं, इसलिए आपके एप्लिकेशन को बाहरी संग्रहण स्थिति के बारे में पता होना चाहिए, जिसे आप Environment.getExternalStorageState()
के माध्यम से प्राप्त कर सकते हैं। ।
आपको बाहरी संग्रहण का उपयोग केवल तभी करना चाहिए जब राज्य MOUNTED
. हो ।
यदि आप डिवाइस स्टार्टअप के दौरान एक फ़ाइल (या SQLite DB; यह सिर्फ एक फ़ाइल है!) खोलने का प्रयास कर रहे हैं, तो आप निश्चित रूप से करेंगे समस्याएं हैं, क्योंकि बाहरी संग्रहण आरोहित नहीं है डिवाइस स्टार्टअप तक (होम स्क्रीन प्रदर्शित होने के बाद)।
इससे बाहर निकलने का तरीका IntentFilter
. को पंजीकृत करना है बाहरी संग्रहण स्थिति में सभी परिवर्तनों के बारे में अधिसूचित होने के लिए, और तदनुसार व्यवहार करें।
दस्तावेज़ीकरण पढ़ना हमेशा एक अच्छा विचार है! विवरण के लिए Android दस्तावेज़ देखें:http://developer.android.com/reference/android/os/Environment.html
इस उद्देश्य के लिए बाहरी संग्रहण का उपयोग करना संदिग्ध है, क्योंकि जब यह अनुपलब्ध हो जाता है तो आप इसे नियंत्रित नहीं कर सकते हैं! उदाहरण के लिए, उपयोगकर्ता अपने डिवाइस को अपने कंप्यूटर पर यूएसबी में प्लग करता है, और "यूएसबी मास स्टोरेज सक्षम करें" विकल्प का चयन करता है, ताकि वे अपने डिवाइस के बाहरी स्टोरेज को अपने कंप्यूटर से एक्सेस कर सकें। बुरी खबर! आपका ऐप एक्सटर्नल स्टोरेज से डिसकनेक्ट हो जाएगा, और सबसे अधिक संभावना है कि बिना किसी क्लीन-अप IO को करने के अवसर के!
इस स्थिति के साथ, अब आपके पास अपने डेटाबेस में डाले जाने वाले सभी डेटा के साथ क्या करना है, यदि केवल यह उपलब्ध होता।