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

हमारा सुझाव है कि आप Android Sharesheet का इस्तेमाल करें, ताकि आपके उपयोगकर्ताओं को सभी ऐप्लिकेशन पर एक जैसा अनुभव मिल सके. अपने ऐप्लिकेशन के शेयर टारगेट की सूची न दिखाएं या शेयरशीट के अलग-अलग वर्शन न बनाएं.
Android की शेयरशीट की सुविधा की मदद से, उपयोगकर्ता एक टैप में सही व्यक्ति के साथ जानकारी शेयर कर सकते हैं. साथ ही, उन्हें काम के ऐप्लिकेशन के सुझाव भी मिलते हैं. शेयरशीट, ऐसे टारगेट का सुझाव दे सकती है जो कस्टम समाधानों के लिए उपलब्ध नहीं हैं. साथ ही, यह एक जैसी रैंकिंग का इस्तेमाल करती है. ऐसा इसलिए है, क्योंकि शेयरशीट, ऐप्लिकेशन और उपयोगकर्ता की गतिविधि की जानकारी को ध्यान में रख सकती है. यह जानकारी सिर्फ़ सिस्टम के लिए उपलब्ध होती है.
Android की शेयरशीट में, डेवलपर के लिए कई काम की सुविधाएं भी होती हैं. उदाहरण के लिए, ये काम किए जा सकते हैं:
- जानें कि आपके उपयोगकर्ता कब और कहां कॉन्टेंट शेयर करते हैं
- कस्टम
ChooserTarget
और ऐप्लिकेशन टारगेट जोड़ना - Android 10 (एपीआई लेवल 29) से शुरू होने वाले वर्शन में, रिच टेक्स्ट कॉन्टेंट की झलक दिखाने की सुविधा उपलब्ध है
- खास कॉम्पोनेंट के नामों से मेल खाने वाले टारगेट को बाहर रखना
Android शेयरशीट का इस्तेमाल करना
शेयर करने के सभी तरीकों के लिए, एक इंटेंट बनाएं और उसके ऐक्शन को Intent.ACTION_SEND
पर सेट करें.
Android Sharesheet दिखाने के लिए, Intent.createChooser()
को कॉल करें और इसमें अपना Intent
ऑब्जेक्ट पास करें.
यह आपके इंटेंट का ऐसा वर्शन दिखाता है जिसमें हमेशा Android की शेयरशीट दिखती है.
टेक्स्ट कॉन्टेंट भेजना
Android की शेयरशीट का सबसे आसान और सामान्य इस्तेमाल, टेक्स्ट कॉन्टेंट को एक ऐक्टिविटी से दूसरी ऐक्टिविटी में भेजने के लिए किया जाता है. उदाहरण के लिए, ज़्यादातर ब्राउज़र, फ़िलहाल दिख रहे पेज के यूआरएल को टेक्स्ट के तौर पर किसी दूसरे ऐप्लिकेशन के साथ शेयर कर सकते हैं. यह सुविधा, किसी लेख या वेबसाइट को ईमेल या सोशल नेटवर्किंग के ज़रिए दोस्तों के साथ शेयर करने के लिए काम की है. यहां इसका एक उदाहरण दिया गया है:
Kotlin
val sendIntent: Intent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "This is my text to send.") type = "text/plain" } val shareIntent = Intent.createChooser(sendIntent, null) startActivity(shareIntent)
Java
Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); Intent shareIntent = Intent.createChooser(sendIntent, null); startActivity(shareIntent);
आपके पास अतिरिक्त जानकारी जोड़ने का विकल्प होता है. जैसे, ईमेल पाने वाले लोग
(EXTRA_EMAIL
,
EXTRA_CC
,
EXTRA_BCC
),
ईमेल का विषय
(EXTRA_SUBJECT
) वगैरह.
ध्यान दें: Gmail जैसे कुछ ईमेल ऐप्लिकेशन, EXTRA_EMAIL
और EXTRA_CC
जैसी अतिरिक्त सुविधाओं के लिए String[]
की उम्मीद करते हैं. इन्हें अपने इंटेंट में जोड़ने के लिए, putExtra(String, String[])
का इस्तेमाल करें.
बाइनरी कॉन्टेंट भेजना
ACTION_SEND
कार्रवाई का इस्तेमाल करके, बाइनरी डेटा शेयर करें.
सही एमआईएमई टाइप सेट करें और अतिरिक्त EXTRA_STREAM
में डेटा का यूआरआई डालें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है.
आम तौर पर, इसका इस्तेमाल इमेज शेयर करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल किसी भी तरह का बाइनरी कॉन्टेंट शेयर करने के लिए किया जा सकता है.
Kotlin
val shareIntent: Intent = Intent().apply { action = Intent.ACTION_SEND // Example: content://com.google.android.apps.photos.contentprovider/... putExtra(Intent.EXTRA_STREAM, uriToImage) type = "image/jpeg" } startActivity(Intent.createChooser(shareIntent, null))
Java
Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); // Example: content://com.google.android.apps.photos.contentprovider/... shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage); shareIntent.setType("image/jpeg"); startActivity(Intent.createChooser(shareIntent, null));
जिस ऐप्लिकेशन को डेटा मिल रहा है उसे Uri
से जुड़े डेटा को ऐक्सेस करने की अनुमति चाहिए. ऐसा करने के लिए, दो तरीके सुझाए गए हैं:
- अपने
ContentProvider
में डेटा सेव करें. साथ ही, यह पक्का करें कि अन्य ऐप्लिकेशन के पास, आपके डेटा को ऐक्सेस करने की सही अनुमति हो. ऐक्सेस देने का सबसे अच्छा तरीका, हर यूआरआई के लिए अनुमतियां इस्तेमाल करना है. ये अनुमतियां कुछ समय के लिए होती हैं और सिर्फ़ डेटा पाने वाले ऐप्लिकेशन को ऐक्सेस देती हैं. इस तरह काContentProvider
बनाने का एक आसान तरीका यह है किFileProvider
हेल्पर क्लास का इस्तेमाल किया जाए. - सिस्टम
MediaStore
का इस्तेमाल करें.MediaStore
मुख्य रूप से वीडियो, ऑडियो, और इमेज के एमआईएमई टाइप के लिए होता है. हालांकि, Android 3.0 (एपीआई लेवल 11) से, यह मीडिया के अलावा अन्य फ़ाइलें भी सेव कर सकता है. ज़्यादा जानकारी के लिए,MediaStore.Files
देखें.MediaStore
में फ़ाइलें डालने के लिए,scanFile()
का इस्तेमाल किया जा सकता है. इसके बाद, शेयर करने के लिए सहीcontent://
-स्टाइल वालाUri
, दिए गएonScanCompleted()
कॉलबैक को पास किया जाता है. ध्यान दें कि सिस्टमMediaStore
में जोड़ने के बाद, डिवाइस पर मौजूद कोई भी ऐप्लिकेशन इस कॉन्टेंट को ऐक्सेस कर सकता है.
सही MIME टाइप का इस्तेमाल करना
भेजे जा रहे डेटा के लिए, सबसे सटीक एमआईएमई टाइप दें. उदाहरण के लिए, सामान्य टेक्स्ट शेयर करते समय text/plain
का इस्तेमाल करें. Android में सामान्य डेटा भेजते समय, यहां कुछ सामान्य MIME टाइप दिए गए हैं:
ईमेल पाने वाले लोग इसके लिए रजिस्टर करते हैं | ईमेल भेजने वाले लोग |
---|---|
text/* |
|
`image/*` |
|
video/* |
|
साथ काम करने वाले फ़ाइल एक्सटेंशन | application/pdf |
MIME टाइप के बारे में ज़्यादा जानकारी के लिए, IANA की MIME मीडिया टाइप की आधिकारिक रजिस्ट्री देखें.
Android की शेयरशीट, दिए गए MIME टाइप के हिसाब से कॉन्टेंट की झलक दिखा सकती है. झलक के तौर पर उपलब्ध कुछ सुविधाएं, सिर्फ़ खास तरह के खातों के लिए उपलब्ध हैं.
एक से ज़्यादा कॉन्टेंट शेयर करना
एक से ज़्यादा कॉन्टेंट शेयर करने के लिए, ACTION_SEND_MULTIPLE
कार्रवाई का इस्तेमाल करें. साथ ही, कॉन्टेंट की ओर ले जाने वाले यूआरआई की सूची भी दें. शेयर किए जा रहे कॉन्टेंट के मिक्स के हिसाब से, MIME टाइप अलग-अलग होता है. उदाहरण के लिए, अगर आपको तीन JPEG इमेज शेयर करनी हैं, तो "image/jpg"
टाइप का इस्तेमाल करें. अलग-अलग तरह की इमेज के लिए, "image/*"
का इस्तेमाल करके ऐसी गतिविधि से मैच करें जो किसी भी तरह की इमेज को हैंडल करती हो. हालांकि, अलग-अलग तरह के कॉन्टेंट को एक साथ शेयर किया जा सकता है, लेकिन हम ऐसा करने का सुझाव नहीं देते. इसकी वजह यह है कि पाने वाले व्यक्ति को यह समझ नहीं आता कि उसे किस तरह का कॉन्टेंट भेजा गया है. अगर कई तरह के ईमेल भेजने ज़रूरी हों, तो "*/*"
का इस्तेमाल करें. डेटा पाने वाले ऐप्लिकेशन पर यह निर्भर करता है कि वह आपके डेटा को पार्स और प्रोसेस करे. यहां एक उदाहरण दिया गया है:
Kotlin
val imageUris: ArrayList<Uri> = arrayListOf( // Add your image URIs here imageUri1, imageUri2 ) val shareIntent = Intent().apply { action = Intent.ACTION_SEND_MULTIPLE putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris) type = "image/*" } startActivity(Intent.createChooser(shareIntent, null))
Java
ArrayList<Uri> imageUris = new ArrayList<Uri>(); imageUris.add(imageUri1); // Add your image URIs here imageUris.add(imageUri2); Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); shareIntent.setType("image/*"); startActivity(Intent.createChooser(shareIntent, null));
पक्का करें कि दिए गए Uri
ऑब्जेक्ट, ऐसे डेटा की ओर ले जाते हों जिसे ऐप्लिकेशन ऐक्सेस कर सकता है.
टेक्स्ट की झलक में रिच कॉन्टेंट जोड़ना
Android 10 (एपीआई लेवल 29) से, Android की शेयरशीट में शेयर किए जा रहे टेक्स्ट की झलक दिखती है. कुछ मामलों में, शेयर किए जा रहे टेक्स्ट को समझना मुश्किल हो सकता है. https://www.google.com/search?ei=2rRVXcLkJajM0PEPoLy7oA4
जैसे मुश्किल यूआरएल को शेयर करने की कोशिश करें. बेहतर प्रीव्यू से, उपयोगकर्ताओं को यह भरोसा दिलाया जा सकता है कि क्या शेयर किया जा रहा है.
अगर आपको टेक्स्ट की झलक देखनी है, तो आपके पास शीर्षक, थंबनेल इमेज या दोनों सेट करने का विकल्प होता है. Intent.createChooser()
पर कॉल करने से पहले, Intent.EXTRA_TITLE
में ब्यौरा जोड़ें. साथ ही, ClipData
का इस्तेमाल करके काम का थंबनेल जोड़ें.
ध्यान दें: इमेज कॉन्टेंट यूआरआई, FileProvider
से मिलता है. आम तौर पर, यह कॉन्फ़िगर किए गए <cache-path>
से मिलता है.
ज़्यादा जानकारी के लिए, फ़ाइलें शेयर करना लेख पढ़ें. यह पक्का करें कि आपने शेयरशीट को, थंबनेल के तौर पर इस्तेमाल की जाने वाली इमेज को पढ़ने की ज़रूरी अनुमतियां दी हों. ज़्यादा जानकारी के लिए, Intent.FLAG_GRANT_READ_URI_PERMISSION
देखें.
यहां एक उदाहरण दिया गया है:
Kotlin
val share = Intent.createChooser(Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "https://developer.android.com/training/sharing/") // (Optional) Here you're setting the title of the content putExtra(Intent.EXTRA_TITLE, "Introducing content previews") // (Optional) Here you're passing a content URI to an image to be displayed data = contentUri flags = Intent.FLAG_GRANT_READ_URI_PERMISSION }, null) startActivity(share)
Java
Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "https://developer.android.com/training/sharing/"); // (Optional) Here you're setting the title of the content sendIntent.putExtra(Intent.EXTRA_TITLE, "Introducing content previews"); // (Optional) Here you're passing a content URI to an image to be displayed sendIntent.setData(contentUri); sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Show the Sharesheet startActivity(Intent.createChooser(sendIntent, null));
झलक कुछ इस तरह दिखती है:

शेयरशीट में कस्टम कार्रवाइयां जोड़ना

Android डिवाइस की शेयरशीट पर, कस्टम कार्रवाइयों का स्क्रीनशॉट.
Android 14 (एपीआई लेवल 34) और इसके बाद के वर्शन पर, ऐप्लिकेशन Android Sharesheet में कस्टम कार्रवाइयां जोड़ सकते हैं.
कस्टम कार्रवाइयां, Android की शेयरशीट में सबसे ऊपर छोटे ऐक्शन आइकॉन के तौर पर दिखती हैं. साथ ही, ऐप्लिकेशन यह तय कर सकते हैं कि आइकॉन पर क्लिक करने पर कौनसी कार्रवाई Intent
शुरू होगी.
Android Sharesheet पर कस्टम कार्रवाइयां जोड़ने के लिए, सबसे पहले ChooserAction
बनाएं. इसके लिए, ChooserAction.Builder
का इस्तेमाल करें.
आइकॉन पर क्लिक करने पर, PendingIntent
को कार्रवाई के तौर पर सेट किया जा सकता है. अपनी सभी कस्टम कार्रवाइयों को शामिल करने वाला एक ऐरे बनाएं और उसे शेयर Intent
के EXTRA_CHOOSER_CUSTOM_ACTIONS
के तौर पर तय करें.
Kotlin
val sendIntent = Intent(Intent.ACTION_SEND) .setType("text/plain") .putExtra(Intent.EXTRA_TEXT, text) val shareIntent = Intent.createChooser(sendIntent, null) val customActions = arrayOf( ChooserAction.Builder( Icon.createWithResource(context, R.drawable.ic_custom_action), "Custom", PendingIntent.getBroadcast( context, 1, Intent(Intent.ACTION_VIEW), PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_CANCEL_CURRENT ) ).build() ) shareIntent.putExtra(Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS, customActions) context.startActivity(shareIntent)
Java
Intent sendIntent = new Intent(Intent.ACTION_SEND) .setType("text.plain") .putExtra(Intent.EXTRA_TEXT, text); Intent shareIntent = Intent.createChooser(sendIntent, null); ChooserAction[] actions = new ChooserAction[]{ new ChooserAction.Builder( Icon.createWithResource(context, R.drawable.ic_custom_action), "Custom", PendingIntent.getBroadcast( context, 1, new Intent(Intent.ACTION_VIEW), PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_CANCEL_CURRENT ) ).build() }; shareIntent.putExtra(Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS, actions); context.startActivity(shareIntent);
कस्टम टारगेट जोड़ना
Android की शेयरशीट में, ज़्यादा से ज़्यादा दो ChooserTarget
ऑब्जेक्ट तय किए जा सकते हैं. ये ऑब्जेक्ट, ChooserTargetServices
से लोड किए गए शेयर करने के शॉर्टकट और चूज़र टारगेट से पहले दिखते हैं. ऐप्लिकेशन के सुझावों से पहले, सूची में दी गई गतिविधियों की ओर इशारा करने वाले ज़्यादा से ज़्यादा दो इंटेंट भी तय किए जा सकते हैं:

Intent.createChooser()
को कॉल करने के बाद, शेयर करने के इंटेंट में Intent.EXTRA_CHOOSER_TARGETS
और Intent.EXTRA_INITIAL_INTENTS
जोड़ें:
Kotlin
val share = Intent.createChooser(myShareIntent, null).apply { putExtra(Intent.EXTRA_CHOOSER_TARGETS, myChooserTargetArray) putExtra(Intent.EXTRA_INITIAL_INTENTS, myInitialIntentArray) }
Java
Intent shareIntent = Intent.createChooser(sendIntent, null); share.putExtra(Intent.EXTRA_CHOOSER_TARGETS, myChooserTargetArray); share.putExtra(Intent.EXTRA_INITIAL_INTENTS, myInitialIntentArray);
इस सुविधा का इस्तेमाल सावधानी से करें. हर कस्टम Intent
और ChooserTarget
जोड़ने पर, सिस्टम की ओर से सुझाए गए नंबर कम हो जाते हैं. हम आम तौर पर, कस्टम टारगेट जोड़ने का सुझाव नहीं देते. Intent.EXTRA_INITIAL_INTENTS
जोड़ने का एक सामान्य और सही उदाहरण यह है कि शेयर किए गए कॉन्टेंट पर उपयोगकर्ता कौनसी अतिरिक्त कार्रवाइयां कर सकते हैं. उदाहरण के लिए, कोई उपयोगकर्ता इमेज शेयर करता है और Intent.EXTRA_INITIAL_INTENTS
का इस्तेमाल करके, उसे इमेज के बजाय लिंक भेजने का विकल्प दिया जाता है. Intent.EXTRA_CHOOSER_TARGETS
जोड़ने का एक सामान्य और सही उदाहरण यह है कि आपके ऐप्लिकेशन से जुड़े लोगों या डिवाइसों को दिखाया जाए.
कॉम्पोनेंट के हिसाब से कुछ टारगेट को बाहर रखना
Intent.EXTRA_EXCLUDE_COMPONENTS
एट्रिब्यूट की वैल्यू देकर, कुछ खास टारगेट को बाहर रखा जा सकता है.
ऐसा सिर्फ़ उन टारगेट को हटाने के लिए करें जिन पर आपका कंट्रोल है. इसका एक सामान्य उदाहरण यह है कि जब उपयोगकर्ता आपके ऐप्लिकेशन से कुछ शेयर करते हैं, तो शेयर करने के लिए उपलब्ध ऐप्लिकेशन के आइकॉन छिपा दिए जाते हैं. ऐसा इसलिए, क्योंकि वे शायद आपके ऐप्लिकेशन के बाहर कुछ शेयर करना चाहते हैं.
Intent.createChooser()
को कॉल करने के बाद, अपने इंटेंट में Intent.EXTRA_EXCLUDE_COMPONENTS
जोड़ें:
Kotlin
val share = Intent.createChooser(Intent(), null).apply { // Only use for components you have control over val excludedComponentNames = arrayOf(ComponentName("com.example.android", "ExampleClass")) putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, excludedComponentNames) }
Java
Intent shareIntent = Intent.createChooser(new Intent(), null); // Only use for components you have control over ComponentName[] excludedComponentNames = { new ComponentName("com.example.android", "ExampleClass") }; shareIntent.putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, excludedComponentNames);
शेयर करने के बारे में जानकारी पाना
इससे यह पता चल सकता है कि आपके उपयोगकर्ता कब शेयर कर रहे हैं और वे कौनसी टारगेट सेटिंग चुन रहे हैं. Android की शेयरशीट की मदद से, यह जानकारी पाई जा सकती है. इसके लिए, आपको ComponentName
देना होगा. यह ComponentName
, आपके उपयोगकर्ताओं ने चुना होगा.IntentSender
सबसे पहले, BroadcastReceiver
के लिए PendingIntent
बनाएं और Intent.createChooser()
में इसका IntentSender
दें:
Kotlin
var share = Intent(Intent.ACTION_SEND) // ... val pi = PendingIntent.getBroadcast( myContext, requestCode, Intent(myContext, MyBroadcastReceiver::class.java), PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT ) share = Intent.createChooser(share, null, pi.intentSender)
Java
Intent share = new Intent(ACTION_SEND); ... PendingIntent pi = PendingIntent.getBroadcast(myContext, requestCode, new Intent(myContext, MyBroadcastReceiver.class), PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); share = Intent.createChooser(share, null, pi.getIntentSender());
MyBroadcastReceiver
में कॉलबैक पाएं और Intent.EXTRA_CHOSEN_COMPONENT
में देखें:
Kotlin
override fun onReceive(context: Context, intent: Intent) { ... val clickedComponent : ComponentName = intent.getParcelableExtra(EXTRA_CHOSEN_COMPONENT); }
Java
@Override public void onReceive(Context context, Intent intent) { ... ComponentName clickedComponent = intent.getParcelableExtra(EXTRA_CHOSEN_COMPONENT); }
शेयरशीट में कस्टम कार्रवाइयां जोड़ना
Android 14 (एपीआई लेवल 34) और इसके बाद के वर्शन पर, ऐप्लिकेशन Android Sharesheet में कस्टम कार्रवाइयां जोड़ सकते हैं.
ChooserAction.Builder
की मदद से ChooserAction
बनाएं.
आइकॉन पर क्लिक करने पर, PendingIntent
को कार्रवाई के तौर पर सेट किया जा सकता है. अपनी सभी कस्टम कार्रवाइयों को शामिल करने वाला एक ऐरे बनाएं और उसे शेयर Intent
के EXTRA_CHOOSER_CUSTOM_ACTIONS
के तौर पर तय करें.
Kotlin
val sendIntent = Intent(Intent.ACTION_SEND) .setType("text/plain") .putExtra(Intent.EXTRA_TEXT, text) val shareIntent = Intent.createChooser(sendIntent, null) val customActions = arrayOf( ChooserAction.Builder( Icon.createWithResource(context, R.drawable.ic_custom_action), "Custom", PendingIntent.getBroadcast( context, 1, Intent(Intent.ACTION_VIEW), PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_CANCEL_CURRENT ) ).build() ) shareIntent.putExtra(Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS, customActions) context.startActivity(shareIntent)
Java
Intent sendIntent = new Intent(Intent.ACTION_SEND) .setType("text.plain") .putExtra(Intent.EXTRA_TEXT, text); Intent shareIntent = Intent.createChooser(sendIntent, null); ChooserAction[] actions = new ChooserAction[]{ new ChooserAction.Builder( Icon.createWithResource(context, R.drawable.ic_custom_action), "Custom", PendingIntent.getBroadcast( context, 1, new Intent(Intent.ACTION_VIEW), PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_CANCEL_CURRENT ) ).build() }; shareIntent.putExtra(Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS, actions); context.startActivity(shareIntent);
Android इंटेंट रिज़ॉल्वर का इस्तेमाल करना

ACTION_SEND
इंटेंट रिज़ॉल्वर का स्क्रीनशॉट.
Android इंटेंट रिज़ॉल्वर का सबसे अच्छा इस्तेमाल तब होता है, जब किसी टास्क फ़्लो के हिस्से के तौर पर, डेटा को किसी दूसरे ऐप्लिकेशन पर भेजा जाता है.
Android इंटेंट रिज़ॉल्वर का इस्तेमाल करने के लिए, एक इंटेंट बनाएं और उसमें अतिरिक्त जानकारी जोड़ें. ऐसा ही Android Sharesheet को कॉल करने के लिए किया जाता है. हालांकि, कॉल न करें Intent.createChooser()
.
अगर फ़िल्टर और MIME टाइप से मेल खाने वाले कई ऐप्लिकेशन इंस्टॉल किए गए हैं, तो सिस्टम एक डायलॉग दिखाता है. इसे इंटेंट रिज़ॉल्वर कहा जाता है. इसकी मदद से, उपयोगकर्ता यह चुन सकता है कि उसे किस ऐप्लिकेशन पर शेयर करना है.ACTION_SEND
अगर कोई एक ऐप्लिकेशन मैच होता है, तो वह चलता है.
यहां Android इंटेंट रिज़ॉल्वर का इस्तेमाल करके टेक्स्ट भेजने का उदाहरण दिया गया है:
Kotlin
val sendIntent: Intent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "This is my text to send.") type = "text/plain" } startActivity(sendIntent)
Java
Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(sendIntent);
ज़्यादा जानें
डेटा भेजने के बारे में ज़्यादा जानकारी के लिए, इंटेंट और इंटेंट फ़िल्टर देखें.