अन्य ऐप्लिकेशन को आसान डेटा भेजें

Android, इंटेंट और उनसे जुड़े एक्सट्रा का इस्तेमाल करता है, ताकि उपयोगकर्ता अपने पसंदीदा ऐप्लिकेशन का इस्तेमाल करके, जानकारी को तेज़ी से और आसानी से शेयर कर सकें.

Android, उपयोगकर्ताओं को ऐप्लिकेशन के बीच डेटा शेयर करने के दो तरीके उपलब्ध कराता है:

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

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

Android Sharesheet का इस्तेमाल क्यों करें

हमारा सुझाव है कि आप Android Sharesheet का इस्तेमाल करें, ताकि सभी उपयोगकर्ताओं के अनुभव को एक जैसा बनाया जा सके दिखाई देता है. अपने ऐप्लिकेशन के शेयर टारगेट की सूची न दिखाएं या अपनी शेयरशीट के वैरिएशन न बनाएं.

Android Sharesheet की मदद से, उपयोगकर्ता एक ही टैप में सही व्यक्ति के साथ जानकारी शेयर कर सकते हैं. साथ ही, उन्हें काम के ऐप्लिकेशन के सुझाव भी मिलते हैं. शेयरशीट, ऐसे टारगेट का सुझाव दे सकती है जो कस्टम समाधानों के लिए उपलब्ध नहीं हैं. साथ ही, इसमें एक जैसी रैंकिंग का इस्तेमाल किया जाता है. ऐसा इसलिए है, क्योंकि शेयरशीट में ऐप्लिकेशन और उपयोगकर्ता की गतिविधि की ऐसी जानकारी शामिल की जा सकती है जो सिर्फ़ सिस्टम के लिए उपलब्ध होती है.

Android Sharesheet में डेवलपर के लिए भी कई सुविधाएं हैं. उदाहरण के लिए, आपके पास ये काम करें:

Android शेयरशीट का इस्तेमाल करना

सभी तरह की शेयरिंग के लिए, एक इंटेंट बनाएं और उसकी कार्रवाई को Intent.ACTION_SEND पर सेट करें. Android Sharesheet दिखाने के लिए, Intent.createChooser() को कॉल करें और उसे अपना Intent ऑब्जेक्ट पास करें. यह आपके इंटेंट का एक ऐसा वर्शन दिखाता है जो हमेशा Android Sharesheet दिखाता है.

टेक्स्ट कॉन्टेंट भेजें

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

KotlinJava
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)
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, जैसा नीचे दिए गए उदाहरण में दिखाया गया है. इसका इस्तेमाल आम तौर पर इमेज शेयर करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल किसी भी तरह के बाइनरी कॉन्टेंट को शेयर करने के लिए किया जा सकता है.

KotlinJava
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))
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 देखें. scanFile() का इस्तेमाल करके, MediaStore में फ़ाइलें डाली जा सकती हैं. इसके बाद, शेयर करने के लिए सही content:// स्टाइल वाला Uri, दिए गए onScanCompleted() कॉलबैक में पास किया जाता है. ध्यान दें कि सिस्टम MediaStore में जोड़ने के बाद, डिवाइस पर मौजूद किसी भी ऐप्लिकेशन से कॉन्टेंट को ऐक्सेस किया जा सकता है.

सही MIME टाइप का इस्तेमाल करना

अपने डेटा के लिए सबसे खास MIME टाइप दें भेजा जा रहा है. उदाहरण के लिए, सादा टेक्स्ट शेयर करते समय text/plain का इस्तेमाल करें. ये रहे कुछ नतीजे Android में आसान डेटा भेजते समय, सामान्य MIME टाइप:

ईमेल पाने वाले लोग, भेजने वाले लोगों ने भेजा
text/*
  • text/plain
  • text/rtf
  • text/html
  • text/json
`image/*`
  • image/jpg
  • image/png
  • image/gif
video/*
  • video/mp4
  • video/3gp
इस्तेमाल किए जा सकने वाले फ़ाइल एक्सटेंशन application/pdf

MIME टाइप के बारे में ज़्यादा जानकारी के लिए, आईएएनए MIME मीडिया प्रकारों की आधिकारिक रजिस्ट्री.

दिए गए MIME टाइप के आधार पर, Android शेयरशीट कॉन्टेंट की झलक दिखा सकती है. झलक देखने की कुछ सुविधाएं, सिर्फ़ कुछ खास तरह के डेटा के लिए उपलब्ध हैं.

कॉन्टेंट के अलग-अलग हिस्से शेयर करना

एक से ज़्यादा कॉन्टेंट शेयर करने के लिए, कॉन्टेंट पर ले जाने वाले यूआरआई की सूची के साथ ACTION_SEND_MULTIPLE कार्रवाई का इस्तेमाल करें. MIME प्रकार शेयर की जा रही है. उदाहरण के लिए, अगर तीन JPEG इमेज शेयर की जाती हैं, तो टाइप के तौर पर "image/jpg" का इस्तेमाल किया जाता है. अलग-अलग तरह की इमेज के लिए, "image/*" का इस्तेमाल करके किसी भी तरह की इमेज को मैनेज करने वाली गतिविधि. हालांकि, अलग-अलग तरह के नतीजे शेयर करना मुमकिन है, लेकिन हम काफ़ी हद तक न करें, क्योंकि यह पाने वाले को यह समझ नहीं आ रहा है कि क्या भेजा जाना है. अगर एक से ज़्यादा तरह के ईमेल भेजने हैं, तो "*/*" का इस्तेमाल करें. यह पार्स करने के लिए पाने वाले ऐप्लिकेशन पर निर्भर करता है और आपका डेटा प्रोसेस कर सकता है. यहां एक उदाहरण दिया गया है:

KotlinJava
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))
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 Sharesheet में शेयर किए जा रहे टेक्स्ट की झलक दिखती है. कुछ मामलों में, शेयर किए गए टेक्स्ट को समझना मुश्किल हो सकता है. https://www.google.com/search?ei=2rRVXcLkJajM0PEPoLy7oA4 जैसा मुश्किल यूआरएल शेयर करें. ज़्यादा बेहतर झलक से आपके उपयोगकर्ताओं को पता चल सकता है कि क्या शेयर किया जा रहा है.

अगर टेक्स्ट की झलक देखी जा रही है, तो टाइटल, थंबनेल इमेज या दोनों को सेट किया जा सकता है. Intent.createChooser() को कॉल करने से पहले, Intent.EXTRA_TITLE में ब्यौरा जोड़ें. साथ ही, ClipData का इस्तेमाल करके काम का थंबनेल जोड़ें.

ध्यान दें: इमेज कॉन्टेंट का यूआरआई, FileProvider से दिया जाता है. आम तौर पर, कॉन्फ़िगर किए गए <cache-path> से. ज़्यादा जानकारी के लिए, फ़ाइलें शेयर करना लेख पढ़ें. अपनी आपको जिस इमेज को थंबनेल के तौर पर इस्तेमाल करना है उसे पढ़ने के लिए ज़रूरी अनुमतियां शेयर करें. ज़्यादा जानकारी के लिए, Intent.FLAG_GRANT_READ_URI_PERMISSION देखें.

यहां एक उदाहरण दिया गया है:

KotlinJava
 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)
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 और ऐप्लिकेशन में सबसे ऊपर, कस्टम ऐक्शन छोटे-छोटे ऐक्शन आइकॉन के तौर पर दिखते हैं आइकॉन पर क्लिक करने पर शुरू की गई कार्रवाई के तौर पर, किसी भी Intent को तय कर सकता है.

Android Sharesheet पर कस्टम कार्रवाइयां जोड़ने के लिए, पहले ChooserAction अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है के साथ ChooserAction.Builder. आइकॉन पर क्लिक करने पर होने वाली कार्रवाई के तौर पर, PendingIntent को चुना जा सकता है. अपनी सभी कस्टम कार्रवाइयों वाला एक कलेक्शन बनाएं और उसे EXTRA_CHOOSER_CUSTOM_ACTIONS के Intent के तौर पर तय करें.

KotlinJava
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)
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 जोड़ें:

KotlinJava
val share = Intent.createChooser(myShareIntent, null).apply {
    putExtra(Intent.EXTRA_CHOOSER_TARGETS, myChooserTargetArray)
    putExtra(Intent.EXTRA_INITIAL_INTENTS, myInitialIntentArray)
}
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 जोड़ें:

KotlinJava
  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)
  }
  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 की मदद से, IntentSender का इस्तेमाल करके उपयोगकर्ताओं के चुने गए टारगेट के ComponentName की जानकारी मिल सकती है.

सबसे पहले BroadcastReceiver के लिए एक PendingIntent बनाएं और उसकी Intent.createChooser() में IntentSender:

KotlinJava
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)
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:

KotlinJava
override fun onReceive(context: Context, intent: Intent) {
  ...
  val clickedComponent : ComponentName = intent.getParcelableExtra(EXTRA_CHOSEN_COMPONENT);
}
@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 के तौर पर तय करें.

KotlinJava
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)
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 शेयरशीट को कॉल करने के लिए किया जाता है. हालांकि, Intent.createChooser() को कॉल न करें.

अगर ACTION_SEND और MIME टाइप से मैच करने वाले फ़िल्टर वाले एक से ज़्यादा ऐप्लिकेशन इंस्टॉल हैं, तो सिस्टम इंटेंट रिज़ॉल्वर नाम का एक डायलॉग बॉक्स दिखाता है. इससे, उपयोगकर्ता को शेयर करने के लिए कोई टारगेट चुनने में मदद मिलती है. अगर एक ही ऐप्लिकेशन मैच करता है, तो चलता है.

मैसेज भेजने के लिए, Android इंटेंट रिज़ॉल्वर का इस्तेमाल करने का तरीका यहां दिया गया है:

KotlinJava
val sendIntent: Intent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "This is my text to send.")
    type = "text/plain"
}
startActivity(sendIntent)
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);

ज़्यादा जानें

डेटा भेजने के बारे में ज़्यादा जानकारी के लिए, इंटेंट और इंटेंट फ़िल्टर देखें.