ज़्यादातर ऐप्लिकेशन जिन्हें शेयर किए गए स्टोरेज के ऐक्सेस की ज़रूरत होती है वे सबसे सही तरीके का इस्तेमाल कर सकते हैं मीडिया शेयर करने के तरीके फ़ाइलें और नॉन-मीडिया शेयर करना फ़ाइलें शामिल हैं. हालांकि, कुछ ऐप्लिकेशन में ऐसे मुख्य मामले होते हैं जिनके लिए डिवाइस में मौजूद फ़ाइलों को बार-बार या हमेशा ऐक्सेस करने की ज़रूरत होती है. उपयोगकर्ताओं को उनकी जानकारी ऐक्सेस करने के लिए, निजता को बनाए रखने वाले स्टोरेज के सबसे सही तरीकों का इस्तेमाल करें. इन उपयोगकर्ताओं के लिए Android, ऐप्लिकेशन को एक खास ऐक्सेस देता है. इस ऐक्सेस को सभी फ़ाइलों का ऐक्सेस कहते हैं स्थितियों के बारे में बताना.
जैसे, किसी एंटी-वायरस ऐप्लिकेशन को मुख्य तौर पर बार-बार स्कैन करना पड़ सकता है फ़ाइलें अलग-अलग होंगी. अगर इसे बार-बार स्कैन करना ज़रूरी हो सिस्टम फ़ाइल पिकर की मदद से डायरेक्ट्री चुनने के लिए, उपयोगकर्ता इंटरैक्शन से उपयोगकर्ताओं को खराब अनुभव मिलता है. इस्तेमाल के अन्य उदाहरण—जैसे कि फ़ाइल मैनेजर ऐप्लिकेशन, साथ ही, दस्तावेज़ मैनेज करने के लिए इस्तेमाल होने वाले ऐप्लिकेशन, बैकअप लेने और पहले जैसा करने की सुविधा देने वाले ऐप्लिकेशन, ध्यान दें.
सभी फ़ाइलों का ऐक्सेस मांगें
कोई ऐप्लिकेशन, उपयोगकर्ता से सभी फ़ाइलों का ऐक्सेस मांग सकता है. इसके लिए, ये काम किए जा सकते हैं:
- घोषणा करें
MANAGE_EXTERNAL_STORAGE
अनुमति नहीं है. - इसका इस्तेमाल करें
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
उपयोगकर्ताओं को ऐसे सिस्टम सेटिंग पेज पर ले जाने के लिए इंटेंट कार्रवाई जहां वे इसे चालू कर सकें आपके ऐप्लिकेशन के लिए, यह विकल्प चुना जाएगा: सभी फ़ाइलों को मैनेज करने के लिए ऐक्सेस दें.
यह पता लगाने के लिए कि आपके ऐप्लिकेशन को MANAGE_EXTERNAL_STORAGE
मिला है या नहीं
अनुमति, कॉल
Environment.isExternalStorageManager()
.
ऑपरेशन की अनुमति MANAGE_EXTERNAL_STORAGE ने दी है
MANAGE_EXTERNAL_STORAGE
की अनुमति से ये अनुमतियां मिलती हैं:
शेयर की गई सभी फ़ाइलों में पढ़ने और लिखने का ऐक्सेस डिवाइस की मेमोरी पर टैप करें.
इसके कॉन्टेंट का ऐक्सेस
MediaStore.Files
टेबल.यूएसबी ऑन-द-गो (OTG) ड्राइव और एसडी, दोनों की रूट डायरेक्ट्री का ऐक्सेस कार्ड.
इसे छोड़कर सभी आंतरिक मेमोरी निर्देशिकाओं में ऐक्सेस लिखने के लिए
/Android/data/
,/sdcard/Android
, और इसकी ज़्यादातर सबडायरेक्ट्री/sdcard/Android
. इस लिखने के ऐक्सेस में डायरेक्ट फ़ाइल शामिल है पाथ ऐक्सेस कर सकते हैं.जिन ऐप्लिकेशन को यह अनुमति मिली है वे अब भी ऐप्लिकेशन से जुड़ी खास जानकारी को ऐक्सेस नहीं कर सकते दूसरे ऐप्लिकेशन से जुड़ी डायरेक्ट्री होती हैं, क्योंकि ये डायरेक्ट्री
Android/data/
की सबडायरेक्ट्री के तौर पर दिखती हैं स्टोरेज की संख्या.
जब किसी ऐप्लिकेशन के पास MANAGE_EXTERNAL_STORAGE
की अनुमति होती है, तब वह इन्हें ऐक्सेस कर सकता है
या तो फ़ाइल या डायरेक्ट्री का इस्तेमाल करके
MediaStore
API या डायरेक्ट फ़ाइल
पाथ. जब आप
स्टोरेज को ऐक्सेस करने का फ़्रेमवर्क,
हालांकि, किसी फ़ाइल या डायरेक्ट्री को तभी ऐक्सेस किया जा सकता है, जब ऐसा किया जा सके
होने वाला है MANAGE_EXTERNAL_STORAGE
की अनुमति.
किसी अन्य ऐप्लिकेशन की स्टोरेज मैनेज करने से जुड़ी गतिविधि शुरू करना
Android 12 (एपीआई लेवल 31) और उसके बाद वाले वर्शन पर, वे ऐप्लिकेशन जिनमें
MANAGE_EXTERNAL_STORAGE
अनुमति और
QUERY_ALL_PACKAGES
अनुमति—जैसे फ़ाइल प्रबंधन ऐप्लिकेशन—
getManageSpaceActivityIntent()
उपयोगकर्ताओं को किसी अन्य ऐप्लिकेशन के कस्टम स्पेस प्रबंधन पर भेजने के लिए
गतिविधि में सेव किया गया था.
getManageSpaceActivityIntent()
तरीका, पैकेज का नाम लेता है और
कोड का अनुरोध करता है और यह इनमें से कोई एक नतीजे दिखाता है:
PendingIntent
, अगर पैकेज के बताए गए नाम में पसंद के मुताबिक "स्पेस मैनेज करें" नाम दिया गया है गतिविधि. फ़ाइल ऐसा मैनेजमेंट ऐप्लिकेशन जोgetManageSpaceActivityIntent()
तरीके का इस्तेमाल करता है उपयोगकर्ताओं को कस्टम गतिविधि पर भेजने के लिए, लौटाए गए इंटेंट को शुरू करें.null
, अगर बताए गए पैकेज नाम वाला ऐप्लिकेशन, "मैनेज करें स्पेस" गतिविधि.
परीक्षण के लिए MANAGE_EXTERNAL_STORAGE सक्षम करें
यह जानने के लिए कि MANAGE_EXTERNAL_STORAGE
अनुमति आपके ऐप्लिकेशन पर कैसे असर डालती है
टेस्टिंग की अनुमति को चालू कर सकता है. ऐसा करने के लिए, नीचे दिए गए निर्देशों का पालन करें
कमांड:
adb shell appops set --uid PACKAGE_NAME MANAGE_EXTERNAL_STORAGE allow
Google Play की सूचना
यह सेक्शन उन डेवलपर को सूचना देता है जो Google Play पर ऐप्लिकेशन पब्लिश करते हैं.
शेयर किए गए मेमोरी के व्यापक ऐक्सेस को सीमित करने के लिए, Google Play Store ने
नीति
Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करने वाले और अनुरोध करने वाले ऐप्लिकेशन का आकलन करने के लिए
MANAGE_EXTERNAL_STORAGE
की अनुमति से सभी फ़ाइलों का ऐक्सेस पाएं. यह नीति
मई 2021 से लागू है.
जब आपका ऐप्लिकेशन Android 11 या उसके बाद के वर्शन को टारगेट करता है और वह
MANAGE_EXTERNAL_STORAGE
अनुमति, Android Studio लिंट से चेतावनी दिखाता है जिसमें
पहली इमेज में दिखाया गया है. यह चेतावनी आपको याद दिलाती है कि Google Play Store में
इस नीति के तहत, अनुमति के इस्तेमाल को सीमित किया जाता है.
MANAGE_EXTERNAL_STORAGE
के बारे में Google Play की नीति
अनुमति.
MANAGE_EXTERNAL_STORAGE
अनुमति का अनुरोध सिर्फ़ तब करें, जब आपका ऐप्लिकेशन
निजता को बनाए रखने वाले एपीआई, जैसे कि स्टोरेज
ऐक्सेस फ़्रेमवर्क या मीडिया
Store API. आपके ऐप्लिकेशन का इस्तेमाल
के तहत इस्तेमाल की जा सकती है. साथ ही, यह अनुमति
मुख्य फ़ंक्शन में कोई कमी नहीं आ सकती. अगर आपके ऐप्लिकेशन में इस्तेमाल का कोई उदाहरण शामिल है
दिए गए विकल्पों में से किसी की तरह, यह हो सकता है कि यह
MANAGE_EXTERNAL_STORAGE
अनुमति:
- फ़ाइल मैनेजर
- डेटा का बैक अप लेने और उसे वापस पाने की सुविधा देने वाले ऐप्लिकेशन
- एंटी-वायरस वाले ऐप्लिकेशन
- दस्तावेज़ मैनेज करने वाले ऐप्लिकेशन
- डिवाइस पर फ़ाइल खोजना
- डिस्क और फ़ाइल एन्क्रिप्ट (सुरक्षित) करने का तरीका
- एक डिवाइस से दूसरे डिवाइस पर डेटा माइग्रेट करना