2012-10-19 29 views
7

I currenlty को एपीपी विकसित करने और बाहरी एसडी कार्ड का उपयोग करने में कुछ समस्याएं हैं।एंड्रॉइड एसडी कार्ड मुद्दे

  • पहली समस्या यह है कि मैं जांचता हूं कि कोई एसडी कार्ड घुड़सवार है या नहीं। यह फ़ंक्शन एक सत्य लौटाता है भले ही कोई एसडी कार्ड डाला न जाए। developer.android.com

    हर Android- संगत डिवाइस एक साझा का समर्थन करता है से

: मैं का उपयोग किया है/कोशिश की निम्नलिखित कोड "बाहरी भंडारण" जिसे आप फ़ाइलों को सहेजने के लिए उपयोग कर सकते हैं। यह एक हटाने योग्य स्टोरेज मीडिया (जैसे एक एसडी कार्ड) या एक आंतरिक (गैर हटाने योग्य) भंडारण हो सकता है। बाहरी भंडारण में सहेजी गई फ़ाइलें विश्व-पठनीय हैं और उपयोगकर्ता द्वारा संशोधित की जा सकती हैं जब वे कंप्यूटर पर फ़ाइलों को स्थानांतरित करने के लिए यूएसबी मास स्टोरेज सक्षम करते हैं।

शायद यह एक समस्या है?

मैं एक एलजी L5 (E610)

उपयोग कर रहा हूँ मैं मैनिफ़ेस्ट फ़ाइल करने के लिए सही अनुमति जोड़ दिया है।

मेरे अन्य मुद्दा यह issue

किसी भी मदद की बहुत सराहना की है से संबंधित हो सकता। धन्यवाद।

+0

कृपया समस्या प्रति एक सवाल खोलें। – pcans

+0

ने प्रश्न – Rik

उत्तर

0

यह तय हो गया, अपनी समस्या थी।

सभी सहायता के लिए धन्यवाद ..

6

तुमने कहा था:

पहली समस्या मैं जाँच करें कि अगर वहाँ एक एसडी कार्ड घुड़सवार है। यह फ़ंक्शन एक सत्य लौटाता है भले ही कोई एसडी कार्ड डाला न जाए।

मुझे लगता है कि आप कुछ ऐसी चीज पर ठोकर खा रहे हैं जो समझने में कुछ समय लेता है, क्योंकि यह बिल्कुल क्रिस्टल स्पष्ट नहीं है।

एंड्रॉयड में आप स्मृति के 2 प्रकार के मिल जाएगा:

  • प्रणाली एक, हमेशा उपलब्ध है, अत्यधिक सुरक्षित: आपके एप्लिकेशन केवल आप के लिए यह एक छोटा सा हिस्सा समर्पित उपयोग कर सकते हैं और अन्य एप्लिकेशन आपके डेटा नहीं पढ़ सकते हैं क्या आप वहां मौजूद हैं।
  • साझा किया गया, जिसे अक्सर सार्वजनिक, बाहरी, या "एसडीकार्ड" कहा जाता है। प्रत्येक ऐप ने इसे सब कुछ पढ़ने/लिखने के लिए उपयोग किया है। लेकिन यह हमेशा उपलब्ध नहीं होता है, क्योंकि आप इसे अपने कंप्यूटर पर "माउंट" कर सकते हैं, जिससे एंड्रॉइड में इसे अनमाउंट करने का असर पड़ता है और इसलिए इसे छुपाया जाता है। (लेकिन एंड्रॉइड 3.X से पहले)।

आप जंगली में उपकरणों के 3 प्रकार मिलेगा:

  • कुछ उपकरणों पर, इस साझा स्मृति एक चिप डिवाइस के अंदर soldered पर है। तो नाम एसडीकार्ड पर्याप्त नहीं है। लेकिन फिर भी, पथ "/ sdcard" हो सकता है
  • अन्य डिवाइसों पर, यह साझा स्मृति वास्तविक sdcard पर है जिसे आप हटा सकते हैं।
  • कुछ अन्य उपकरणों पर यह स्मृति चिप पर एक हिस्से के लिए है, और आपके एसडीकार्ड पर किसी अन्य भाग के लिए है।

जो आपने कहा था उसके आधार पर मुझे लगता है कि आप तीसरे प्रकार के डिवाइस पर हैं। तो आपका भौतिक एसडीकार्ड इस तरह के पथ में मिलेगा: /mnt/sdcard/external_sd/। अफसोस की बात है, यह डिवाइस विशिष्ट है, मुझे नहीं लगता कि इस पथ को पाने के लिए एंड्रॉइड एपीआई में कुछ है।

इसके अलावा, एंड्रॉइड 3.X के बाद से, ध्यान में रखें, हमें अब इस साझा स्मृति को "माउंट" करने की आवश्यकता नहीं है। इसलिए आपकी साझा मेमोरी हमेशा एंड्रॉइड के लिए होगी क्योंकि अब हम एमटीपी प्रोटोकॉल का उपयोग कर रहे हैं।

यही कारण है कि बाहरी स्टोरेज उपलब्ध() सत्य साबित होता है, भले ही आपका एसडीकार्ड हटा दिया गया हो।

+0

फ़ाइल जड़ें = पर्यावरण.getExternalStorageDirectory(); सही डीआईआर दे सकता है, मैं अभी कोशिश नहीं कर सकता। या आप कह रहे हैं कि कार्ड के बिना तीसरे प्रकार के डिवाइस पथ में भी मौजूद हो सकता है? – weston

+0

तीसरे प्रकार में, getExternStorageDirectory() आपको "/ mnt/sdcard /" देगा, यह अस्तित्व में होगा, अगर आपका भौतिक एसडीकार्ड हटा दिया गया हो, तो इसे पढ़ या लिखा जा सकता है। – pcans

+0

वास्तव में getExternalStorageDirectory() फ़ंक्शन के साथ मुझे पथ "/ mnt/sdcard /" मिलता है और फ़ोल्डर्स में जाने के लिए मुझे "बाहरी_एसडी /" जोड़ने की आवश्यकता होती है लेकिन इससे मुझे फ़ाइलों को पढ़ने (अन्य समस्या देखें) में समस्याएं मिलती हैं। – Rik