पर एंड्रॉइड एप्लिकेशन डेटा संग्रहीत करना क्या आंतरिक मेमोरी के बजाय एसडी कार्ड पर एंड्रॉइड एप्लिकेशन डेटा स्टोर करने का कोई तरीका है? मुझे पता है कि एप्लिकेशन स्क्वाइट डेटाबेस को आंतरिक मेमोरी से एसडीकार्ड में कैसे स्थानांतरित करना है, लेकिन क्या होगा यदि आंतरिक मेमोरी पहले स्थान पर पूर्ण हो जाए? यह सब कैसे संभालता है?एसडी कार्ड
उत्तर
चेतावनी: यह उत्तर पुराना है। नीचे दिए गए उत्तरों में उल्लिखित एसडी कार्ड के रूट पथ को प्राप्त करने के लिए आपको Environment.getExternalStorageDirectory() का उपयोग करना चाहिए। इसलिए इस मेकअप भावना पर टिप्पणी
ओल्ड उत्तर:
अपना रास्ता अपने Android अनुप्रयोग का उपयोग करने एसडी कार्ड ले जाना चाहिए (कम से कम यह G1 के साथ इस तरह काम करता है) रूट के /sdcard/
जोड़ा जा रहा है। एंड्रॉइड की फाइल सिस्टम ऑब्जेक्ट्स आपको फ़ाइल आकारों की जांच करने की क्षमता देती है ... इसलिए कुछ विफल-ओवर कोड लिखना संभव है (यदि मुश्किल हो)। यदि आंतरिक मेमोरी भर जाती है तो यह कोड आपके रूट पथ को समायोजित करेगा।
एसडीकार्ड का उपयोग करने में समस्या यह है कि आप विश्वसनीय रूप से यह नहीं मान सकते कि यह हमेशा आपके उपस्थित होने पर उपस्थित रहेगा। आंतरिक स्मृति के साथ यह मामला नहीं है। जब तक आपका एप्लिकेशन चलाने के लिए इस डेटा पर भरोसा नहीं करता है, तब तक यह ठीक होना चाहिए।
हार्ड कोड "/ sdcard" से Environment.getExternalStorageDirectory() का उपयोग करना बेहतर अभ्यास है यह हमेशा निश्चित नहीं है कि फ़ोल्डर का नाम उसे कहा जाएगा। इसके अलावा, पर्यावरण वर्ग एक बाहरी एक्स्ट्रास्ट स्टोरेजस्टेट() विधि प्रदान करता है ताकि यह जांच सके कि बाहरी संग्रहण भी उपलब्ध है या नहीं।
यह हमेशा काम नहीं करता है क्योंकि स्पष्ट रूप से सैमसंग का * असली * एसडी कार्ड स्थान 'Environment.getExternalStorageDirectory() +"/external_sd "' है। अन्य उपकरणों में अलग-अलग स्थान होंगे। – Muz
यहां एक और साफ छोटी चाल है। Application में कई विधियां हैं जिन्हें पथ प्राप्त करने के लिए बुलाया जाता है। विशेष रूप से एप्लिकेशन में getDatabasePath विधि है जिसका उपयोग पथ बनाने के लिए SQLiteOpenHelper द्वारा किया जाता है। getExternalStorageDirectory में पथ सहित विभिन्न पथ प्रदान करने के लिए एक कस्टम एप्लिकेशन क्लास इन तरीकों को ओवरराइड कर सकता है।
बाहरी संग्रहण या तो एप्लिकेशन विशिष्ट या सार्वजनिक है। क्रमशः getExternalStorageDirectory तंत्र, getExternalFilesDir() और getExternalStoragePublicDirectory() को प्रतिस्थापित करने के तरीके हैं।
कुछ डिवाइस का उपयोग/mnt/sdcard एसडी कार्ड के रूट बिंदु के रूप में।
शुरू करने के लिए:
मॉडल/ओएस के आधार पर आप के साथ एसडी कार्ड रूट निर्देशिका का उपयोग कर सकते हैं:
File externalStorage = Environment.getExternalStorageDirectory();
यह आंतरिक एसडी भंडारण या आंतरिक एसडी मेमोरी के पास भेजेगा।
externalStorage.getAbsolutePath()
निम्न मान
"/ sdcard /" या "/ mnt/sdcard /"
बाहरी एसडी मेमोरी या माइक्रो एसडी पहुंचने के लिए, कि में से एक वापस आ जाएगी आप आमतौर पर फ़ोन/टेबलेट के बाहर से प्लग, तो आप निम्न फ़ोल्डरों कि android बाहरी मेमोरी को इंगित करने के बनाता है में से एक का उपयोग करना चाहिए:
"/mnt/sdcard/sd"
"/mnt/sdcard/external_sd"
"/sdcard/external_sd"
"/sdcard/sd"
"/mnt/sdcard/"
पुनश्च: आप आंतरिक sdcard
स्मृति पर कोई खाली फोल्डर external_sd
या sd
देख सकते हैं, इस फ़ोल्डर रिक्त है और उसके बाहरी माइक्रो एसडी कार्ड को इंगित करने के लिए इस्तेमाल किया।
अंत में सुनिश्चित करें कि आपने एंड्रॉइड मैनिफेस्ट xml में एसडी कार्ड android.permission.WRITE_EXTERNAL_STORAGE
तक पहुंच को पढ़/लिख लिया है।
अंत में आप फ़ाइल नाम निर्दिष्ट करना होगा और अपने तैयार
private SQLiteDatabase DB = null;
private static final String DATABASE_NAME = "MyDb.db";
////////////
File sdcard = Environment.getExternalStorageDirectory();
String dbfile = sdcard.getAbsolutePath() + File.separator+ "external_sd" + File.separator + DATABASE_NAME;
DB = SQLiteDatabase.openDatabase(dbfile, null,SQLiteDatabase.NO_LOCALIZED_COLLATORS);
///////////
और अपने जाने के लिए तैयार ...
दुर्भाग्यवश, यह बिल्कुल मानक नहीं है। एलजी ऑप्टिमस पर यह/mnt/sdcard/_ExternalSD में है। मुझे आशा है कि Google पर कोई भी उस सब की समीक्षा करेगा। मीडिया का नामकरण इतना खराब (बाहरी ???) है और दस्तावेज़ एक अंतर्निहित होने पर दूसरे sdcard तक पहुंचने के तरीके के बारे में कोई शब्द नहीं बताते हैं। – Snicolas
क्या आप एसडी कार्ड में मौजूद सभी फ़ोल्डरों का नाम प्राप्त करने में मदद कर सकते हैं। –
- 1. एसडी कार्ड
- 2. एसडी कार्ड
- 3. एसडी कार्ड
- 4. एसडी कार्ड
- 5. एसडी कार्ड
- 6. एसडी कार्ड
- 7. एसडी कार्ड
- 8. एसडी कार्ड
- 9. एसडी कार्ड
- 10. एसडी कार्ड
- 11. एसडी कार्ड
- 12. एंड्रॉइड: बाहरी एसडी कार्ड
- 13. आवेदन एसडी कार्ड
- 14. कोई एसडी कार्ड
- 15. एंड्रॉइड एसडी कार्ड व्यवहार
- 16. एंड्रॉइड एसडी कार्ड मुद्दे
- 17. मैं एसडी कार्ड
- 18. वेबदृश्य एसडी कार्ड
- 19. प्रदर्शन एसडी कार्ड
- 20. एसडी कार्ड से फ़ाइल को
- 21. एंड्रॉइड सेविंग ने एसडी कार्ड
- 22. एंड्रॉइड बैकअप और एसडी-कार्ड
- 23. एसडी कार्ड लिखने का प्रदर्शन
- 24. एसडी कार्ड पर ऐप के लिए सेवा पुनरारंभ करें जब एसडी कार्ड को
- 25. एसडी कार्ड में पाठ फ़ाइल लिखना
- 26. एंड्रॉइड एसडी कार्ड लेखन, अनुमति अस्वीकार
- 27. कैसे फोन या एसडी कार्ड स्मृति में
- 28. मेरे एसडी कार्ड से प्रदर्शित आइकन
- 29. एसडी कार्ड में एंड्रॉइड सेविंग बिटमैप
- 30. स्ट्रीम एंड्रॉयड logcat एक एसडी कार्ड
कैसे आप रूट पथ समायोजित करूं? – user121196
उस रूट पथ को समायोजित करें जिसका आप उपयोग कर रहे हैं। (यह थोड़ा उलझन में था ... आप एंड्रॉइड के रूट पथ को नहीं बदल सकते हैं) – haseman
मैं डेटाबेस बनाने के लिए SQLiteDatabase का उपयोग कर रहा हूं, हालांकि इसके कन्स्ट्रक्टर के नाम तर्क में कोई पथ नहीं हो सकता है, यह कैसे संभव है कि मैं इसे बनाऊं एसडीकार्ड पर डेटाबेस? – user121196