2012-12-01 14 views
5

मैं एक ऐप विकसित कर रहा हूं जिसके लिए एसडीकार्ड के रूट फ़ोल्डर में सीधी पहुंच की आवश्यकता है, हालांकि यह एंड्रॉइड 4.2 में लगता है, मानक/एसडीकार्ड निर्देशिका अब उपयोगकर्ता के लिए विशिष्ट "नकली" एसडीकार्ड को इंगित करती है ऐप चला रहा है यह अच्छा नहीं है, क्योंकि मेरे ऐप को उस फ़ाइल तक पहुंच की आवश्यकता है जो एसडीकार्ड के शीर्ष स्तर पर संग्रहीत है। क्या कोई एंड्रॉइड 4.2 में सीधे एसडीकार्ड तक पहुंचने के बारे में जानता है?एंड्रॉइड में एक्सेस/एसडीकार्ड 4.2

+0

क्या यह एक वास्तविक हटाने योग्य एसडी कार्ड है? 4.x उपकरणों पर मैंने देखा है, वास्तव में कोई एसडीकार्ड नहीं है, केवल आंतरिक स्टोरेज वॉल्यूम के भीतर एक का अनुकरण है, इसलिए लक्ष्य व्यर्थ होगा। यदि कोई भौतिक कार्ड है तो आप एडीबी शैल के 'माउंट' कमांड को देख सकते हैं और देख सकते हैं कि इसे कैसे संभाला जा रहा है। –

+0

आपको गलतफहमी लगती है। हमेशा एक/sdcard विभाजन होता है, भले ही यह आभासी हो। लेकिन 4.2 अपडेट के साथ,/sdcard का हैंडलिंग पूरी तरह से अलग है। Sdcard विभाजन (कोड में) तक पहुंचने से आपको * वास्तविक */sdcard पर इंगित नहीं किया जाता है, यह आपको sdcard के वर्चुअल "विभाजन" पर इंगित करता है जो वर्तमान उपयोगकर्ता के लिए विशिष्ट है। ध्यान रखें कि जिस ऐप का मैं विकास कर रहा हूं वह डिवाइस के बावजूद 4.2 से नीचे एंड्रॉइड संस्करणों पर ठीक काम करता है। – Drew

+0

इस पोस्ट को कौशिक दत्ता (रोम मैनेजर के डेवलपर) द्वारा देखें जहां वह एक ही मुद्दे के बारे में शिकायत करता है। https://plus.google.com/103583939320326217147/posts/D7mZBjTJj5j – Drew

उत्तर

2

क्या आप स्टोरेज निर्देशिका का उपयोग फ़ाइल प्रकार के रूप में कर सकते हैं? (java.io.File)

यदि हां, तो आप बाह्य भंडारण प्राप्त कर सकते हैं (आमतौर पर एसडी कार्ड, लेकिन कोई एसडी कार्ड के साथ फोन पर मुख्य भंडारण हो जाएगा) कोड का उपयोग करके इस तरह के तरीके में इस रूप में:

File path = Environment.getExternalStorageDirectory(); 

इसके अतिरिक्त, स्टोरेज तक पहुंच READ_EXTERNAL_STORAGE आपके एंड्रॉइड मैनिफेस्ट में अनुमति की आवश्यकता है - WRITE_EXTERNAL_STORAGE के साथ किसी भी डेटा को संशोधित करने की आवश्यकता है। यहाँ इन अनुमतियों हैं के रूप में वे प्रकट में दिखाई देगा:

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

सूत्रों का कहना है:

http://developer.android.com/reference/android/os/Environment.html http://developer.android.com/reference/android/Manifest.permission.html

+0

यही वह है जो मैं वर्तमान में उपयोग करता हूं, लेकिन मुद्दा यह है कि एंड्रॉइड 4.2 में इसे/sdcard (बाहरी स्टोरेज डायरेक्टरी) विभाजन की वास्तविक रूट पर रीडायरेक्ट नहीं किया गया है, लेकिन/sdcard (बाहरी स्टोरेज डायरेक्टरी) विभाजन पर एक विशेष उपयोगकर्ता-विशिष्ट स्थान पर रीडायरेक्ट किया गया है। – Drew

+0

आह, मुझे लगता है - खेद है कि मैंने आपके प्रश्न को गलत समझा। – Alex6642122

1

शायद मैं आपके सवाल का गलत समझ रहा हूँ, फिर भी, मेरे Nexus आकाशगंगा चलाने वाले Android 4.2.1 के साथ मैं Environment.getExternalStorageDirectory() का उपयोग कर अपने एसडी कार्ड तक पहुंच सकता हूं। लौटाई गई निर्देशिका /storage/emulated/0 है, लेकिन सामग्री /sdcard है।

+0

स्टोरेज के बारे में कुछ दस्तावेज़ हैं, लेकिन 4.4 स्रोत.android.com/devices/tech/storage/config-example.html और doubleencore.com/2014/03/android-external- स्टोरेज के लिए – pevik

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