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

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

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

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

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

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

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

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

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

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/*
  • 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/*" का इस्तेमाल करके किसी भी तरह की इमेज को मैनेज करने वाली गतिविधि. हालांकि, अलग-अलग तरह के नतीजे शेयर करना मुमकिन है, लेकिन हम काफ़ी हद तक न करें, क्योंकि यह पाने वाले को यह समझ नहीं आ रहा है कि क्या भेजा जाना है. अगर कई तरह के ईमेल भेजना ज़रूरी है, तो "*/*". यह पार्स करने के लिए पाने वाले ऐप्लिकेशन पर निर्भर करता है और आपका डेटा प्रोसेस कर सकता है. यहां एक उदाहरण दिया गया है:

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 Sharesheet पर कस्टम कार्रवाइयों का स्क्रीनशॉट.

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 इंटेंट रिज़ॉल्वर का इस्तेमाल करना

ACTION_SEND इंटेंट रिज़ॉल्वर का स्क्रीनशॉट.

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);

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

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