Android 14 में पेश है चुनिंदा फ़ोटो का ऐक्सेस. इससे लोग, ऐप्लिकेशन को अपनी लाइब्रेरी में मौजूद खास इमेज और वीडियो का ऐक्सेस दे पाएंगे. इसमें उन्हें हर तरह के मीडिया का ऐक्सेस नहीं मिलेगा.
यह बदलाव सिर्फ़ तब चालू होता है, जब आपका ऐप्लिकेशन Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन को टारगेट करता है. अगर आपने अभी तक फ़ोटो पिकर का इस्तेमाल नहीं किया है, तो हमारा सुझाव है कि ऐप्लिकेशन में इसे लागू करें. इससे, इमेज और वीडियो चुनने का एक जैसा अनुभव मिलेगा. इससे, स्टोरेज की अनुमतियों के अनुरोध की ज़रूरत नहीं होगी और उपयोगकर्ता की निजता भी बेहतर होगी.
अगर आपने स्टोरेज की अनुमतियों का इस्तेमाल करके, अपना गैलरी पिकर बनाया है और आपको इसे लागू करने पर पूरा कंट्रोल रखना है, तो नई READ_MEDIA_VISUAL_USER_SELECTED
अनुमति का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन को लागू करने के तरीके में बदलाव करें. अगर आपका ऐप्लिकेशन नई अनुमति का इस्तेमाल नहीं करता है, तो सिस्टम आपके ऐप्लिकेशन को काम करने के तरीके के हिसाब से बनाए गए मोड में चलाता है.
टारगेट किए जा रहे SDK टूल | READ_MEDIA_VISUAL_USER_SELECTED एलान किया गया |
चुनी गई Photos का ऐक्सेस चालू है | यूज़र एक्सपीरियंस (यूएक्स) से जुड़ा व्यवहार |
---|---|---|---|
SDK 33 | नहीं | नहीं | लागू नहीं |
हां | हां | ऐप्लिकेशन से कंट्रोल किया जाता है | |
SDK 34 | नहीं | हां | सिस्टम (काम करने का तरीका) से कंट्रोल किया जाता है |
हां | हां | ऐप्लिकेशन से कंट्रोल किया जाता है |
अपना गैलरी पिकर बनाना या उसमें बदलाव करना
अपना गैलरी पिकर बनाने के लिए, ज़्यादा डेवलपमेंट और रखरखाव की ज़रूरत होती है. साथ ही, उपयोगकर्ता की साफ़ तौर पर सहमति लेने के लिए, आपके ऐप्लिकेशन को स्टोरेज की अनुमतियों का अनुरोध करना होगा. उपयोगकर्ता इन अनुरोधों को अस्वीकार कर सकते हैं. इसके अलावा, अगर आपका ऐप्लिकेशन Android 14 वाले डिवाइस पर चल रहा है और आपका ऐप्लिकेशन Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन को टारगेट करता है, तो चुने गए मीडिया का ऐक्सेस सीमित किया जा सकता है. नीचे दी गई इमेज में, अनुमतियों का अनुरोध करने और नए विकल्पों का इस्तेमाल करके मीडिया चुनने का उदाहरण दिया गया है.

इस सेक्शन में, MediaStore
का इस्तेमाल करके अपनी गैलरी पिकर बनाने का सुझाया गया तरीका बताया गया है. अगर आपके पास अपने ऐप्लिकेशन के लिए पहले से एक गैलरी पिकर है और आपको उसका पूरा कंट्रोल बनाए रखना है, तो लागू करने के लिए इन उदाहरणों का इस्तेमाल किया जा सकता है. अगर आपने चुने गए Photos के ऐक्सेस को मैनेज करने के लिए, लागू करने के तरीके को अपडेट नहीं किया है, तो सिस्टम आपके ऐप्लिकेशन को कंपैटिबिलिटी मोड में चलाता है.
अनुमतियों का अनुरोध करना
सबसे पहले, ओएस वर्शन के हिसाब से Android मेनिफ़ेस्ट में, स्टोरेज से जुड़ी सही अनुमतियों का अनुरोध करें:
<!-- Devices running Android 12L (API level 32) or lower -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<!-- Devices running Android 13 (API level 33) or higher -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<!-- To handle the reselection within the app on devices running Android 14
or higher if your app targets Android 14 (API level 34) or higher. -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
इसके बाद, ओएस वर्शन के हिसाब से, रनटाइम की सही अनुमतियों का अनुरोध करें:
// Register ActivityResult handler
val requestPermissions = registerForActivityResult(RequestMultiplePermissions()) { results ->
// Handle permission requests results
// See the permission example in the Android platform samples: https://github.com/android/platform-samples
}
// Permission request logic
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
requestPermissions.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_VISUAL_USER_SELECTED))
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
requestPermissions.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VIDEO))
} else {
requestPermissions.launch(arrayOf(READ_EXTERNAL_STORAGE))
}
कुछ ऐप्लिकेशन को अनुमतियों की ज़रूरत नहीं है
Android 10 (एपीआई लेवल 29) के बाद, ऐप्लिकेशन को शेयर किए गए स्टोरेज में फ़ाइलें जोड़ने के लिए, स्टोरेज की अनुमतियों की ज़रूरत नहीं है. इसका मतलब है कि ऐप्लिकेशन, गैलरी में इमेज जोड़ सकते हैं, वीडियो रिकॉर्ड करके उन्हें शेयर किए गए स्टोरेज में सेव कर सकते हैं या स्टोरेज की अनुमतियों का अनुरोध किए बिना, PDF इनवॉइस डाउनलोड कर सकते हैं. अगर आपका ऐप्लिकेशन सिर्फ़ शेयर किए गए स्टोरेज में फ़ाइलें जोड़ता है और इमेज या वीडियो के लिए क्वेरी नहीं करता है, तो आपको स्टोरेज की अनुमतियों का अनुरोध बंद करना होगा. साथ ही, अपने AndroidManifest.xml
में, एपीआई 28 का maxSdkVersion
सेट करना होगा:
<!-- No permission is needed to add files to shared storage on Android 10 (API level 29) or higher -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
मीडिया को फिर से चुनने का काम मैनेज करें
Android 14 में, चुनी गई फ़ोटो का ऐक्सेस देने की सुविधा के साथ, आपके ऐप्लिकेशन को मीडिया को फिर से चुनने की सुविधा को कंट्रोल करने के लिए, नई READ_MEDIA_VISUAL_USER_SELECTED
अनुमति को अपनाना चाहिए. साथ ही, अपने ऐप्लिकेशन के इंटरफ़ेस को अपडेट करना चाहिए, ताकि उपयोगकर्ता आपके ऐप्लिकेशन को फ़ोटो और वीडियो के किसी दूसरे सेट का ऐक्सेस दे सकें. नीचे दी गई इमेज में, अनुमतियों का अनुरोध करने और मीडिया को फिर से चुनने का उदाहरण दिया गया है:

फ़ोटो या वीडियो चुनने का डायलॉग बॉक्स खोलने पर, आपके अनुरोध के हिसाब से फ़ोटो, वीडियो या दोनों दिखते हैं. उदाहरण के लिए, अगर READ_MEDIA_IMAGES
अनुमति के बिना READ_MEDIA_VIDEO
अनुमति का अनुरोध किया जा रहा है, तो उपयोगकर्ताओं को फ़ाइलें चुनने के लिए यूज़र इंटरफ़ेस (यूआई) में सिर्फ़ वीडियो दिखेंगे.
// Allow the user to select only videos
requestPermissions.launch(arrayOf(READ_MEDIA_VIDEO, READ_MEDIA_VISUAL_USER_SELECTED))
यह देखा जा सकता है कि आपके ऐप्लिकेशन के पास डिवाइस की फ़ोटो लाइब्रेरी का पूरा, कुछ हिस्सा या कोई ऐक्सेस नहीं है. इसके हिसाब से, अपने इंटरफ़ेस को अपडेट करें. ऐप्लिकेशन के स्टार्टअप के समय के बजाय, जब ऐप्लिकेशन को स्टोरेज का ऐक्सेस चाहिए, तब इन अनुमतियों का अनुरोध करें. ध्यान रखें कि अनुमति देने की सुविधा को onStart
और onResume
ऐप्लिकेशन लाइफ़साइकल कॉलबैक के बीच बदला जा सकता है. ऐसा इसलिए, क्योंकि उपयोगकर्ता आपके ऐप्लिकेशन को बंद किए बिना, सेटिंग में जाकर ऐक्सेस को बदल सकता है.
if (
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
(
ContextCompat.checkSelfPermission(context, READ_MEDIA_IMAGES) == PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(context, READ_MEDIA_VIDEO) == PERMISSION_GRANTED
)
) {
// Full access on Android 13 (API level 33) or higher
} else if (
Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE &&
ContextCompat.checkSelfPermission(context, READ_MEDIA_VISUAL_USER_SELECTED) == PERMISSION_GRANTED
) {
// Partial access on Android 14 (API level 34) or higher
} else if (ContextCompat.checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PERMISSION_GRANTED) {
// Full access up to Android 12 (API level 32)
} else {
// Access denied
}
डिवाइस लाइब्रेरी पर क्वेरी करें
यह पुष्टि करने के बाद कि आपके पास स्टोरेज की सही अनुमतियां हैं, डिवाइस की लाइब्रेरी के बारे में क्वेरी करने के लिए, MediaStore
के साथ इंटरैक्ट किया जा सकता है. यह तरीका, ऐक्सेस के लिए पूरी या कुछ अनुमतियां मिलने पर भी काम करता है:
data class Media(
val uri: Uri,
val name: String,
val size: Long,
val mimeType: String,
)
// Run the querying logic in a coroutine outside of the main thread to keep the app responsive.
// Keep in mind that this code snippet is querying only images of the shared storage.
suspend fun getImages(contentResolver: ContentResolver): List<Media> = withContext(Dispatchers.IO) {
val projection = arrayOf(
Images.Media._ID,
Images.Media.DISPLAY_NAME,
Images.Media.SIZE,
Images.Media.MIME_TYPE,
)
val collectionUri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// Query all the device storage volumes instead of the primary only
Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL)
} else {
Images.Media.EXTERNAL_CONTENT_URI
}
val images = mutableListOf<Media>()
contentResolver.query(
collectionUri,
projection,
null,
null,
"${Images.Media.DATE_ADDED} DESC"
)?.use { cursor ->
val idColumn = cursor.getColumnIndexOrThrow(Images.Media._ID)
val displayNameColumn = cursor.getColumnIndexOrThrow(Images.Media.DISPLAY_NAME)
val sizeColumn = cursor.getColumnIndexOrThrow(Images.Media.SIZE)
val mimeTypeColumn = cursor.getColumnIndexOrThrow(Images.Media.MIME_TYPE)
while (cursor.moveToNext()) {
val uri = ContentUris.withAppendedId(collectionUri, cursor.getLong(idColumn))
val name = cursor.getString(displayNameColumn)
val size = cursor.getLong(sizeColumn)
val mimeType = cursor.getString(mimeTypeColumn)
val image = Media(uri, name, size, mimeType)
images.add(image)
}
}
return@withContext images
}
MediaStore
के साथ इंटरैक्ट करने का तरीका बताने के लिए, इस कोड स्निपेट को आसान बनाया गया है.
प्रोडक्शन के लिए तैयार ऐप्लिकेशन में, पेजिंग लाइब्रेरी जैसी किसी चीज़ के साथ पेजेशन का इस्तेमाल करें, ताकि अच्छी परफ़ॉर्मेंस को पक्का किया जा सके.
आखिरी बार चुने गए विकल्प की क्वेरी करें
Android 15 या इसके बाद के वर्शन वाले ऐप्लिकेशन और Android 14 पर, Google Play के सिस्टम अपडेट की सुविधा वाले ऐप्लिकेशन, QUERY_ARG_LATEST_SELECTION_ONLY
को चालू करके, उन इमेज और वीडियो के बारे में क्वेरी कर सकते हैं जो उपयोगकर्ता ने आखिरी बार चुनी थी.
if (getExtensionVersion(Build.VERSION_CODES.U) >= 12) {
val queryArgs = bundleOf(
QUERY_ARG_SQL_SORT_ORDER to "${Images.Media.DATE_ADDED} DESC"
QUERY_ARG_LATEST_SELECTION_ONLY to true
)
contentResolver.query(collectionUri, projection, queryArgs, null)
}
डिवाइस के अपग्रेड होने पर, फ़ोटो और वीडियो का ऐक्सेस बरकरार रहता है
अगर आपका ऐप्लिकेशन किसी ऐसे डिवाइस पर है जिसे Android के पुराने वर्शन से Android 14 पर अपग्रेड किया गया है, तो सिस्टम उपयोगकर्ता की फ़ोटो और वीडियो का पूरा ऐक्सेस रखता है. साथ ही, यह आपके ऐप्लिकेशन को कुछ अनुमतियां अपने-आप दे देता है. असल कार्रवाई, इस बात पर निर्भर करती है कि डिवाइस को Android 14 में अपग्रेड करने से पहले, आपके ऐप्लिकेशन को कौनसी अनुमतियां दी गई हैं.
Android 13 से मिली अनुमतियां
यहां दी गई स्थिति देखें:
- आपका ऐप्लिकेशन, Android 13 वाले डिवाइस पर इंस्टॉल हो.
- उपयोगकर्ता ने आपके ऐप्लिकेशन को
READ_MEDIA_IMAGES
औरREAD_MEDIA_VIDEO
अनुमति दी है. - इसके बाद, आपका ऐप्लिकेशन इंस्टॉल रहने के दौरान, डिवाइस Android 14 में अपग्रेड हो जाता है.
- आपका ऐप्लिकेशन, Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन को टारगेट करना शुरू कर देता है.
इस मामले में, आपके ऐप्लिकेशन के पास अब भी उपयोगकर्ता की फ़ोटो और वीडियो का पूरा ऐक्सेस होता है.
सिस्टम, आपके ऐप्लिकेशन को अपने-आप दी गई READ_MEDIA_IMAGES
और READ_MEDIA_VIDEO
अनुमतियां भी बनाए रखता है.
Android 12 और इससे पहले के वर्शन के लिए अनुमतियां
इस स्थिति पर ध्यान दें:
- आपका ऐप्लिकेशन, Android 13 वाले डिवाइस पर इंस्टॉल किया गया है.
- उपयोगकर्ता ने आपके ऐप्लिकेशन को
READ_EXTERNAL_STORAGE
अनुमति याWRITE_EXTERNAL_STORAGE
अनुमति दी है. - इसके बाद, डिवाइस Android 14 पर अपग्रेड हो जाता है, जबकि आपका ऐप्लिकेशन अब भी इंस्टॉल रहता है.
- आपका ऐप्लिकेशन, Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन को टारगेट करना शुरू कर देता है.
इस मामले में, आपके ऐप्लिकेशन के पास अब भी उपयोगकर्ता की फ़ोटो और वीडियो का पूरा ऐक्सेस होता है.
सिस्टम आपके ऐप्लिकेशन को READ_MEDIA_IMAGES
और
READ_MEDIA_VIDEO
अनुमति भी अपने-आप देता है.
सबसे सही तरीके
इस सेक्शन में, READ_MEDIA_VISUAL_USER_SELECTED
अनुमति का इस्तेमाल करने के कई सबसे सही तरीके बताए गए हैं. ज़्यादा जानकारी के लिए, अनुमति देने के सबसे सही तरीके देखें.
अनुमति की स्थिति को हमेशा के लिए सेव न करें
अनुमति की स्थिति को हमेशा के लिए सेव न करें. इसमें SharedPreferences
या DataStore
भी शामिल हैं. ऐसा हो सकता है कि सेव की गई स्थिति, असल स्थिति से मेल न खाए. अनुमति रीसेट करने, ऐप्लिकेशन को हाइबरनेट करने, उपयोगकर्ता के ऐप्लिकेशन की सेटिंग में किए गए बदलाव या ऐप्लिकेशन के बैकग्राउंड में जाने के बाद, अनुमति की स्थिति बदल सकती है. इसके बजाय, ContextCompat.checkSelfPermission()
का इस्तेमाल करके, स्टोरेज की अनुमतियों की जांच करें.
यह न सोचें कि आपके पास फ़ोटो और वीडियो का पूरा ऐक्सेस है
Android 14 में किए गए बदलावों के आधार पर, हो सकता है कि आपके ऐप्लिकेशन के पास डिवाइस की फ़ोटो लाइब्रेरी का सिर्फ़ कुछ हिस्सा ऐक्सेस करने का ऐक्सेस हो. अगर ऐप्लिकेशन ContentResolver
का इस्तेमाल करके क्वेरी करने पर, MediaStore
डेटा को कैश मेमोरी में सेव कर रहा है, तो हो सकता है कि कैश मेमोरी में सेव किया गया डेटा अप-टू-डेट न हो.
- स्टोर किए गए कैश मेमोरी पर भरोसा करने के बजाय,
ContentResolver
का इस्तेमाल करके हमेशाMediaStore
की क्वेरी करें. - जब आपका ऐप्लिकेशन फ़ोरग्राउंड में हो, तब नतीजों को मेमोरी में सेव रखें.
- जब आपका ऐप्लिकेशन
onResume
ऐप्लिकेशन लाइफ़साइकल से गुज़रता है, तो नतीजों को रीफ़्रेश करें. ऐसा इसलिए, क्योंकि उपयोगकर्ता अनुमति की सेटिंग की मदद से, पूरे ऐक्सेस से कुछ हिस्से के ऐक्सेस पर स्विच कर सकता है.
यूआरआई को कुछ समय के लिए ऐक्सेस करने का तरीका
अगर उपयोगकर्ता, सिस्टम की अनुमतियों वाले डायलॉग में फ़ोटो और वीडियो चुनें को चुनता है, तो चुनी गई फ़ोटो और वीडियो का ऐक्सेस आपके ऐप्लिकेशन के लिए खत्म हो जाता है.
आपके ऐप्लिकेशन को हमेशा इस बात का ध्यान रखना चाहिए कि उसके पास किसी भी Uri
का ऐक्सेस न हो. भले ही, उस Uri
के पास कितनी भी अनुमति हो.
अनुमति के हिसाब से, चुने जा सकने वाले मीडिया टाइप को फ़िल्टर करना
चुने गए डायलॉग बॉक्स में, अनुरोध की गई अनुमति के टाइप के हिसाब से बदलाव होता है:
- सिर्फ़
READ_MEDIA_IMAGES
का अनुरोध करने पर, सिर्फ़ चुनी जा सकने वाली इमेज दिखती हैं. - सिर्फ़
READ_MEDIA_VIDEO
का अनुरोध करने पर, सिर्फ़ वह वीडियो दिखता है जिसे चुना जा सकता है. READ_MEDIA_IMAGES
औरREAD_MEDIA_VIDEO
, दोनों का अनुरोध करने पर पूरी फ़ोटो लाइब्रेरी, चुनने लायक दिखती है.
आपके ऐप्लिकेशन के इस्तेमाल के उदाहरणों के आधार पर, आपको यह पक्का करना चाहिए कि
सही अनुमतियों का अनुरोध किया जाए, ताकि उपयोगकर्ता को खराब अनुभव न मिले. अगर किसी सुविधा के लिए सिर्फ़ वीडियो चुनने की ज़रूरत है, तो सिर्फ़ READ_MEDIA_VIDEO
का अनुरोध करें.
एक ही कार्रवाई में अनुमतियों का अनुरोध करना
उपयोगकर्ताओं को सिस्टम के रनटाइम के दौरान एक से ज़्यादा डायलॉग बॉक्स न दिखें, इसके लिए एक ही ऑपरेशन में READ_MEDIA_VISUAL_USER_SELECTED
, ACCESS_MEDIA_LOCATION
, और "मीडिया पढ़ने" की अनुमतियों (READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
या दोनों) का अनुरोध करें.
उपयोगकर्ताओं को अपना चुना गया खाता मैनेज करने की अनुमति दें
जब उपयोगकर्ता, कुछ फ़ोटो का ऐक्सेस देने का मोड चुनता है, तो आपके ऐप्लिकेशन को यह नहीं मानना चाहिए कि डिवाइस की फ़ोटो लाइब्रेरी खाली है. साथ ही, उसे उपयोगकर्ता को और फ़ाइलों का ऐक्सेस देने की अनुमति देनी चाहिए.
उपयोगकर्ता, अनुमति सेटिंग की मदद से, पूरे ऐक्सेस से कुछ हिस्से के ऐक्सेस पर स्विच कर सकता है. ऐसा करने पर, कुछ विज़ुअल मीडिया फ़ाइलों का ऐक्सेस नहीं दिया जाएगा.
कंपैटिबिलिटी मोड
अगर आपने स्टोरेज की अनुमतियों का इस्तेमाल करके अपना गैलरी पिकर बनाया है, लेकिन READ_MEDIA_VISUAL_USER_SELECTED
की नई अनुमति का इस्तेमाल करने के लिए अपने ऐप्लिकेशन में बदलाव नहीं किया है, तो जब भी उपयोगकर्ता को मीडिया चुनना या फिर से चुनना होगा, तब सिस्टम आपके ऐप्लिकेशन को काम करने के लिए बनाए गए मोड में चलाएगा.
मीडिया चुनने के दौरान होने वाली गतिविधि
अगर कोई उपयोगकर्ता शुरुआती चरण में, "फ़ोटो और वीडियो चुनें" (पहली इमेज देखें) को चुनता है, तो ऐप्लिकेशन सेशन के दौरान READ_MEDIA_IMAGES
और READ_MEDIA_VIDEO
अनुमतियां दी जाती हैं. इससे, उपयोगकर्ता को चुनी गई फ़ोटो और वीडियो का कुछ समय के लिए ऐक्सेस मिलता है. जब आपका ऐप्लिकेशन बैकग्राउंड में चला जाता है या जब उपयोगकर्ता आपके ऐप्लिकेशन को बंद कर देता है, तो सिस्टम इन अनुमतियों को अस्वीकार कर देता है. यह व्यवहार, एक बार के लिए ली जाने वाली अन्य अनुमतियों की तरह ही होता है.
मीडिया को फिर से चुनने के दौरान होने वाली कार्रवाइयां
अगर आपके ऐप्लिकेशन को बाद में अन्य फ़ोटो और वीडियो ऐक्सेस करने की ज़रूरत पड़ती है, तो आपको मैन्युअल तरीके से READ_MEDIA_IMAGES
या READ_MEDIA_VIDEO
की अनुमति फिर से लेनी होगी. सिस्टम, अनुमति के शुरुआती अनुरोध की तरह ही काम करता है. इसमें उपयोगकर्ताओं को फ़ोटो और वीडियो चुनने के लिए कहा जाता है (दूसरी इमेज देखें).
अगर आपका ऐप्लिकेशन अनुमतियों के सबसे सही तरीकों का पालन कर रहा है, तो इस बदलाव से आपके ऐप्लिकेशन पर कोई असर नहीं पड़ेगा. ऐसा खास तौर पर तब होता है, जब आपका ऐप्लिकेशन यह न मानता हो कि यूआरआई का ऐक्सेस बरकरार है, सिस्टम की अनुमति की स्थिति सेव करता हो या अनुमति में बदलाव होने के बाद, दिखाई गई इमेज के सेट को रीफ़्रेश करता हो. हालांकि, आपके ऐप्लिकेशन के इस्तेमाल के उदाहरण के आधार पर, ऐसा हो सकता है कि यह तरीका सही न हो. उपयोगकर्ताओं को बेहतरीन अनुभव देने के लिए, हमारा सुझाव है कि आप फ़ोटो पिकर लागू करें या READ_MEDIA_VISUAL_USER_SELECTED
अनुमति का इस्तेमाल करके, इस व्यवहार को सीधे मैनेज करने के लिए अपने ऐप्लिकेशन के गैलरी पिकर को अडैप्ट करें.