स्टोरेज डिवाइस पर मौजूद सभी फ़ाइलें मैनेज करना

ज़्यादातर ऐप्लिकेशन जिन्हें शेयर किए गए स्टोरेज के ऐक्सेस की ज़रूरत होती है वे सबसे सही तरीके का इस्तेमाल कर सकते हैं मीडिया शेयर करने के तरीके फ़ाइलें और नॉन-मीडिया शेयर करना फ़ाइलें शामिल हैं. हालांकि, कुछ ऐप्लिकेशन में ऐसे मुख्य मामले होते हैं जिनके लिए डिवाइस में मौजूद फ़ाइलों को बार-बार या हमेशा ऐक्सेस करने की ज़रूरत होती है. उपयोगकर्ताओं को उनकी जानकारी ऐक्सेस करने के लिए, निजता को बनाए रखने वाले स्टोरेज के सबसे सही तरीकों का इस्तेमाल करें. इन उपयोगकर्ताओं के लिए Android, ऐप्लिकेशन को एक खास ऐक्सेस देता है. इस ऐक्सेस को सभी फ़ाइलों का ऐक्सेस कहते हैं स्थितियों के बारे में बताना.

जैसे, किसी एंटी-वायरस ऐप्लिकेशन को मुख्य तौर पर बार-बार स्कैन करना पड़ सकता है फ़ाइलें अलग-अलग होंगी. अगर इसे बार-बार स्कैन करना ज़रूरी हो सिस्टम फ़ाइल पिकर की मदद से डायरेक्ट्री चुनने के लिए, उपयोगकर्ता इंटरैक्शन से उपयोगकर्ताओं को खराब अनुभव मिलता है. इस्तेमाल के अन्य उदाहरण—जैसे कि फ़ाइल मैनेजर ऐप्लिकेशन, साथ ही, दस्तावेज़ मैनेज करने के लिए इस्तेमाल होने वाले ऐप्लिकेशन, बैकअप लेने और पहले जैसा करने की सुविधा देने वाले ऐप्लिकेशन, ध्यान दें.

सभी फ़ाइलों का ऐक्सेस मांगें

कोई ऐप्लिकेशन, उपयोगकर्ता से सभी फ़ाइलों का ऐक्सेस मांग सकता है. इसके लिए, ये काम किए जा सकते हैं:

  1. घोषणा करें MANAGE_EXTERNAL_STORAGE अनुमति नहीं है.
  2. इसका इस्तेमाल करें ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION उपयोगकर्ताओं को ऐसे सिस्टम सेटिंग पेज पर ले जाने के लिए इंटेंट कार्रवाई जहां वे इसे चालू कर सकें आपके ऐप्लिकेशन के लिए, यह विकल्प चुना जाएगा: सभी फ़ाइलों को मैनेज करने के लिए ऐक्सेस दें.

यह पता लगाने के लिए कि आपके ऐप्लिकेशन को MANAGE_EXTERNAL_STORAGE मिला है या नहीं अनुमति, कॉल Environment.isExternalStorageManager().

ऑपरेशन की अनुमति MANAGE_EXTERNAL_STORAGE ने दी है

MANAGE_EXTERNAL_STORAGE की अनुमति से ये अनुमतियां मिलती हैं:

जब किसी ऐप्लिकेशन के पास 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 में इस नीति के तहत, अनुमति के इस्तेमाल को सीमित किया जाता है.

पहली इमेज. Android Studio में लिंट की चेतावनी जो डेवलपर को याद दिलाती है कि MANAGE_EXTERNAL_STORAGE के बारे में Google Play की नीति अनुमति.

MANAGE_EXTERNAL_STORAGE अनुमति का अनुरोध सिर्फ़ तब करें, जब आपका ऐप्लिकेशन निजता को बनाए रखने वाले एपीआई, जैसे कि स्टोरेज ऐक्सेस फ़्रेमवर्क या मीडिया Store API. आपके ऐप्लिकेशन का इस्तेमाल के तहत इस्तेमाल की जा सकती है. साथ ही, यह अनुमति मुख्य फ़ंक्शन में कोई कमी नहीं आ सकती. अगर आपके ऐप्लिकेशन में इस्तेमाल का कोई उदाहरण शामिल है दिए गए विकल्पों में से किसी की तरह, यह हो सकता है कि यह MANAGE_EXTERNAL_STORAGE अनुमति:

  • फ़ाइल मैनेजर
  • डेटा का बैक अप लेने और उसे वापस पाने की सुविधा देने वाले ऐप्लिकेशन
  • एंटी-वायरस वाले ऐप्लिकेशन
  • दस्तावेज़ मैनेज करने वाले ऐप्लिकेशन
  • डिवाइस पर फ़ाइल खोजना
  • डिस्क और फ़ाइल एन्क्रिप्ट (सुरक्षित) करने का तरीका
  • एक डिवाइस से दूसरे डिवाइस पर डेटा माइग्रेट करना