Android, इंटेंट और उनसे जुड़ी दूसरी सुविधाओं का इस्तेमाल करता है, ताकि लोग तेज़ी से जानकारी शेयर कर सकें और अपने पसंदीदा ऐप्लिकेशन का इस्तेमाल आसानी से कर सकते हैं.
Android, उपयोगकर्ताओं को ऐप्लिकेशन के बीच डेटा शेयर करने के दो तरीके उपलब्ध कराता है:
- Android Sharesheet को मुख्य रूप से आपके ऐप्लिकेशन के बाहर और/या सीधे कॉन्टेंट भेजने के लिए डिज़ाइन किया गया है किसी अन्य उपयोगकर्ता को दिखाता है. उदाहरण के लिए, अपने दोस्त के साथ यूआरएल शेयर करना.
- Android इंटेंट रिज़ॉल्वर, उस टास्क का अगला चरण पूरा करें. उदाहरण के लिए, अपने ऐप्लिकेशन से PDF खोलना और उपयोगकर्ताओं को अपना पसंदीदा दर्शक चुन सकते हैं.
कोई इंटेंट बनाते समय, आपको वह कार्रवाई तय करनी होती है जो आपको इंटेंट से करनी है.
Android, ACTION_SEND
कार्रवाई का इस्तेमाल करता है
डेटा को एक गतिविधि से दूसरी गतिविधि पर भेजने के लिए,
कई चीज़ों के बारे में जानते हैं. आपको यह बताना होगा
और उसका टाइप क्या है. सिस्टम, इसके साथ काम करने वाली गतिविधियों की अपने-आप पहचान करता है
जो डेटा को रिसीव कर सकती हैं और उन्हें उपयोगकर्ता को दिखाती हैं. इंटेंट रिज़ॉल्वर के मामले में,
अगर सिर्फ़ एक गतिविधि ही इंटेंट को हैंडल कर सकती है, तो वह गतिविधि तुरंत शुरू हो जाती है.
Android Sharesheet का इस्तेमाल क्यों करें
हमारा सुझाव है कि आप Android Sharesheet का इस्तेमाल करें, ताकि सभी उपयोगकर्ताओं के अनुभव को एक जैसा बनाया जा सके दिखाई देता है. अपने ऐप्लिकेशन के शेयर टारगेट की सूची न दिखाएं या अपनी सूची न बनाएं शेयरशीट के अलग-अलग वर्शन.
Android Sharesheet की मदद से उपयोगकर्ता, सिर्फ़ एक टैप में, अपनी ज़रूरत के हिसाब से उन्हें और सही ऐप्लिकेशन के बारे में सुझाव दें. शेयरशीट, ऐसे टारगेट का सुझाव दे सकती है जो कस्टम समाधानों के लिए उपलब्ध नहीं हैं. साथ ही, इसमें एक जैसी रैंकिंग का इस्तेमाल किया जाता है. ऐसा इसलिए होता है, क्योंकि शेयरशीट की मदद से, ऐप्लिकेशन और उपयोगकर्ता गतिविधि के बारे में जानकारी को इकट्ठा किया जा सकता है जो सिर्फ़ सिस्टम पर उपलब्ध है.
Android Sharesheet में डेवलपर के लिए, आसानी से इस्तेमाल की जा सकने वाली कई सुविधाएं भी मौजूद हैं. उदाहरण के लिए, आपके पास ये काम करें:
- जानें कि उपयोगकर्ता कब शेयर कर सकते हैं और कहां तक शेयर कर सकते हैं
- कस्टम
ChooserTarget
और ऐप्लिकेशन टारगेट जोड़ें - Android 10 (एपीआई लेवल 29) और उसके बाद के वर्शन में रिच टेक्स्ट कॉन्टेंट की झलक दिखाना
- कॉम्पोनेंट के नाम से मैच होने वाले टारगेट बाहर रखना
Android शेयरशीट का इस्तेमाल करना
सभी तरह की जानकारी शेयर करने के लिए, इंटेंट बनाएं और उसकी कार्रवाई को इस पर सेट करें
Intent.ACTION_SEND
.
Android शेयरशीट दिखाने के लिए,
Intent.createChooser()
,
उसे अपना Intent
ऑब्जेक्ट पास करना.
यह आपके इंटेंट का ऐसा वर्शन दिखाता है जो हमेशा Android शेयरशीट दिखाता है.
टेक्स्ट कॉन्टेंट भेजें
Android Sharesheet का सबसे आसान और आम इस्तेमाल यह है कि गतिविधि को एक-दूसरे के साथ शेयर करना. उदाहरण के लिए, ज़्यादातर ब्राउज़र अभी दिखाई गई साइट का यूआरएल शेयर कर सकते हैं पेज को किसी अन्य ऐप्लिकेशन से टेक्स्ट के रूप में लिखें. यह किसी लेख या वेबसाइट को दोस्तों के साथ ईमेल या सोशल नेटवर्किंग. यहां उदाहरण के तौर पर ऐसा करने का तरीका बताया गया है:
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 जैसे कुछ ईमेल ऐप्लिकेशन में
String[]
जैसी अन्य चीज़ों के लिए
EXTRA_EMAIL
और EXTRA_CC
. इस्तेमाल की जाने वाली चीज़ें
putExtra(String, String[])
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ताकि इन्हें अपने इंटेंट में जोड़ा जा सके.
बाइनरी कॉन्टेंट भेजें
ACTION_SEND
कार्रवाई का इस्तेमाल करके बाइनरी डेटा शेयर करें.
सही MIME टाइप सेट करें और अतिरिक्त डेटा में डेटा के लिए एक यूआरआई रखें
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
मुख्य तौर पर वीडियो, ऑडियो, और इमेज MIME टाइप के लिए होता है. हालांकि, Android 3.0 (एपीआई) से शुरू करके लेवल 11), तो इसमें गैर-मीडिया टाइप भी सेव किए जा सकते हैं. ज़्यादा जानकारी के लिए, यह देखेंMediaStore.Files
.MediaStore
में फ़ाइलें शामिल करने के लिए, इनका इस्तेमाल करेंscanFile()
, इसके बाद,content://
-स्टाइलUri
साझाकरण के लिए उपयुक्त प्रदत्त को भेज दिया जाता हैonScanCompleted()
कॉलबैक. ध्यान दें कि सिस्टमMediaStore
में जोड़ने के बाद, कॉन्टेंट को ऐक्सेस किया जा सकता है किसी भी ऐप्लिकेशन से कनेक्ट है.
सही MIME टाइप का इस्तेमाल करें
अपने डेटा के लिए सबसे खास MIME टाइप दें
भेजा जा रहा है. उदाहरण के लिए, सादा टेक्स्ट शेयर करते समय text/plain
का इस्तेमाल करें. ये रहे कुछ नतीजे
Android में आसान डेटा भेजते समय, सामान्य MIME टाइप:
पाने वाले इसके लिए रजिस्टर करते हैं | भेजने वाले लोगों ने भेजा |
---|---|
text/* |
|
`image/*` |
|
video/* |
|
इस्तेमाल किए जा सकने वाले फ़ाइल एक्सटेंशन | application/pdf |
MIME टाइप के बारे में ज़्यादा जानकारी के लिए, आईएएनए MIME मीडिया प्रकारों की आधिकारिक रजिस्ट्री.
दिए गए MIME टाइप के आधार पर, Android शेयरशीट कॉन्टेंट की झलक दिखा सकती है. कुछ सूचनाएं मिल रही हैं झलक देखने की सुविधाएं, सिर्फ़ खास तरह के डिवाइसों के लिए उपलब्ध हैं.
कॉन्टेंट के अलग-अलग हिस्से शेयर करना
कॉन्टेंट के कई हिस्से शेयर करने के लिए, 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 14 (एपीआई लेवल 34) और उसके बाद के वर्शन पर, ऐप्लिकेशन अपनी पसंद के मुताबिक कार्रवाइयां जोड़ सकते हैं.
Android Sharesheet और ऐप्लिकेशन में सबसे ऊपर, कस्टम ऐक्शन छोटे-छोटे ऐक्शन आइकॉन के तौर पर दिखते हैं
आइकॉन पर क्लिक करने पर शुरू की गई कार्रवाई के तौर पर, किसी भी Intent
को तय कर सकता है.
Android Sharesheet पर कस्टम कार्रवाइयां जोड़ने के लिए, पहले
ChooserAction
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
के साथ
ChooserAction.Builder
.
आइकॉन पर क्लिक करने के बाद शुरू की गई कार्रवाई के तौर पर, PendingIntent
तय किया जा सकता है. कुछ लिखने या तैयार करने में मदद पाएँ
एक कलेक्शन जिसमें आपकी सभी कस्टम कार्रवाइयां शामिल हैं और उसे इस तौर पर तय किया जा सकता है
EXTRA_CHOOSER_CUSTOM_ACTIONS
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
शेयर Intent
में से.
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.EXTRA_CHOOSER_TARGETS
और Intent.EXTRA_INITIAL_INTENTS
को इसमें जोड़ें
कॉल करने के बाद शेयर करने की इंटेंट
Intent.createChooser()
:
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 Sharesheet आपको यह जानकारी पाने के लिए,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) और उसके बाद के वर्शन पर, ऐप्लिकेशन अपनी पसंद के मुताबिक कार्रवाइयां जोड़ सकते हैं.
ChooserAction
बनाएं
के साथ
ChooserAction.Builder
.
आइकॉन पर क्लिक करने के बाद शुरू की गई कार्रवाई के तौर पर, PendingIntent
तय किया जा सकता है. कुछ लिखने या तैयार करने में मदद पाएँ
एक कलेक्शन जिसमें आपकी सभी कस्टम कार्रवाइयां शामिल हैं और उसे इस तौर पर तय किया जा सकता है
EXTRA_CHOOSER_CUSTOM_ACTIONS
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
शेयर Intent
में से.
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 इंटेंट रिज़ॉल्वर का इस्तेमाल करना
Android इंटेंट रिज़ॉल्वर का सबसे अच्छा इस्तेमाल तब होता है, जब किसी बेहतर तरीके से तय किए गए टास्क फ़्लो के हिस्से के तौर पर, किसी दूसरे ऐप्लिकेशन को डेटा भेजा जाता है.
Android इंटेंट रिज़ॉल्वर का इस्तेमाल करने के लिए, कोई इंटेंट बनाएं और कॉल करने के लिए इस्तेमाल की जाने वाली अतिरिक्त सुविधाएं जोड़ें
Android शेयरशीट. हालांकि, कॉल न करें
Intent.createChooser()
.
अगर इंस्टॉल किए गए कई ऐप्लिकेशन मौजूद हैं और उनके फ़िल्टर मेल खाते हैं
ACTION_SEND
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
और MIME टाइप के साथ, सिस्टम एक साफ़ तौर पर जानकारी देने वाला डायलॉग दिखाता है. इस डायलॉग को इंटेंट रिज़ॉल्वर कहा जाता है
जिससे उपयोगकर्ता शेयर करने के लिए कोई टारगेट चुन सकता है. अगर एक ही ऐप्लिकेशन
मैच करता है, तो चलता है.
मैसेज भेजने के लिए, 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);
ज़्यादा जानें
डेटा भेजने के बारे में ज़्यादा जानने के लिए, देखें इंटेंट और इंटेंट फ़िल्टर.