2011-02-11 12 views
62

मैं चाहता हूं कि मेरा एप्लिकेशन उपयोगकर्ता अन्य उपयोगकर्ताओं को मेरे ऐप को साझा/अनुशंसा करने में सक्षम हो। मैं ACTION_SEND इरादा का उपयोग करता हूं। मैं सादा पाठ जोड़ता हूं जो कुछ कहता है: इस शांत एप्लिकेशन को इंस्टॉल करें। लेकिन मुझे उदाहरण के लिए बाजार स्थान की इंस्टॉल स्क्रीन पर सीधे जाने के लिए सक्षम करने का कोई तरीका नहीं मिल रहा है। मैं उन्हें एक वेब लिंक या कुछ पाठ प्रदान कर सकता हूं। दूसरे शब्दों में मैं एंड्रॉइड उपयोगकर्ताओं के लिए अपना ऐप इंस्टॉल करने का एक बहुत ही सीधा तरीका ढूंढ रहा हूं।Android में साझा करें "लिंक"

किसी भी मदद/संकेत के लिए धन्यवाद,

थॉमस

उत्तर

153

यह आपको ईमेल, व्हास्टैप या जो कुछ भी चुनने देगा।

try { 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.putExtra(Intent.EXTRA_SUBJECT, "My application name"); 
    String sAux = "\nLet me recommend you this application\n\n"; 
    sAux = sAux + "https://play.google.com/store/apps/details?id=Orion.Soft \n\n"; 
    i.putExtra(Intent.EXTRA_TEXT, sAux); 
    startActivity(Intent.createChooser(i, "choose one")); 
} catch(Exception e) { 
    //e.toString(); 
} 
+3

+1 धन्यवाद, मुझे वास्तव में इस समाधान की आवश्यकता है। – chrome

+0

बहुत अच्छा यह आकर्षण की तरह काम करता है। – amardeep

+0

बिल्कुल सही समाधान। –

19

थॉमस,

आप एक लिंक जो उन्हें अपने अनुप्रयोग के विवरण पृष्ठ पर सीधे लाएगा के साथ अपने उपयोगकर्ताओं को प्रदान करना चाहते हैं। निम्नलिखित developer.android.com से है:

लोड हो रहा है एक आवेदन पत्र के विवरण पृष्ठ

Android बाजार में, हर आवेदन एक विवरण पृष्ठ है कि उपयोगकर्ताओं को के लिए आवेदन की एक अवलोकन प्रदान करता है है। उदाहरण के लिए, पेज एक छोटी उपयोग में एप्लिकेशन और स्क्रीन इसके बारे में शॉट्स के विवरण, यदि डेवलपर, और साथ ही राय उपयोगकर्ताओं से और जानकारी डेवलपर के बारे में द्वारा आपूर्ति भी शामिल है। विवरण पृष्ठ भी में एक "इंस्टॉल" बटन शामिल है जो को एप्लिकेशन के डाउनलोड/खरीद को ट्रिगर करने देता है।

यदि आप उपयोगकर्ता को विशिष्ट एप्लिकेशन पर संदर्भित करना चाहते हैं, तो आपके एप्लिकेशन उपयोगकर्ता के विवरण पृष्ठ पर सीधे ले सकता है।

बाजार:: करने के लिए करते हैं तो, आपके आवेदन एक ACTION_VIEW आशय है कि इस प्रारूप में कोई यूआरआई और क्वेरी पैरामीटर शामिल भेजता // details? Id =

इस मामले में, PackageName पैरामीटर लक्ष्य है के पैकेज विशेषता में घोषित एप्लिकेशन की मेनिफेस्ट फ़ाइल में घोषित पूरी तरह से योग्य पैकेज नाम के रूप में।

बाजार:: उदाहरण के लिए // details? Id = com.example.android.jetboy

स्रोत: http://developer.android.com/guide/publishing/publishing.html

+0

लिंक के लिए +1। वह अच्छा दिखता है। जैसा कि मैं उपयोगकर्ता को साझा करना चाहता हूं, मुझे अभी भी ACTION_SEND का उपयोग करने और मेरे टेक्स्ट में बाज़ार लिंक जोड़ने की आवश्यकता है। यदि उपयोगकर्ता उस पर क्लिक करता है तो shoudl उसे इंस्टॉल पेज पर रीडायरेक्ट करता है। अच्छा लगता है मुझे इसे आजमा देना है। अगर मैं आपको सही समझता हूं तो मुझे बताएं। – Thomas

+0

हाँ आप ACTION_SEND के टेक्स्ट में मार्केट लिंक का उपयोग कर सकते हैं, यह केवल तभी काम करेगा जब एंड्रॉइड डिवाइस पर क्लिक किया जाए। –

+1

लेकिन अगर हम ACTION_SEND का उपयोग करते हैं तो यह लिंक बाजार लिंक नहीं खुलता है, लिंक एक साधारण पाठ के रूप में वहां रहेगा। लेकिन लिंक ACTION_VIEW के साथ बाजार खोलने में सहायक था। –

9

अधिक सटीक

Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.android.example")); 
    startActivity(intent); 

या यदि आप होना करने के लिए अपने अन्य ऐप्स को अपने देव से साझा करना चाहते हैं। खाता आप इस तरह कुछ कर सकते हैं

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id=Your_Publisher_Name")); 
startActivity(intent); 
2

स्वचालित रूप से आप इस इस्तेमाल कर सकते हैं आवेदन नाम और आवेदन आईडी में भरने के लिए:

int applicationNameId = context.getApplicationInfo().labelRes; 
final String appPackageName = context.getPackageName(); 
Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_SUBJECT, activity.getString(applicationNameId)); 
String text = "Install this cool application: "; 
String link = "https://play.google.com/store/apps/details?id=" + appPackageName; 
i.putExtra(Intent.EXTRA_TEXT, text + " " + link); 
startActivity(Intent.createChooser(i, "Share link:")); 
7

कॉल इस विधि:

public static void shareApp(Context context) 
{ 
    final String appPackageName = context.getPackageName(); 
    Intent sendIntent = new Intent(); 
    sendIntent.setAction(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Check out Aap Ka Sewak App at: https://play.google.com/store/apps/details?id=" + appPackageName); 
    sendIntent.setType("text/plain"); 
    context.startActivity(sendIntent); 
} 
1

मैं इस सवाल का पता उत्तर दिया गया है, लेकिन मैं वैकल्पिक समाधान साझा करना चाहते हैं:

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
String shareSubText = "WhatsApp - The Great Chat App"; 
String shareBodyText = "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en"; 
shareIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubText); 
shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText); 
startActivity(Intent.createChooser(shareIntent, "Share With")); 
2
शीर्षक के साथ

शेयर आवेदन आप APP_NAME है, सामग्री अपने आवेदन लिंक

private static void shareApp(Context context) { 
    final String appPackageName = BuildConfig.APPLICATION_ID; 
    final String appName = context.getString(R.string.app_name); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    String shareBodyText = "https://play.google.com/store/apps/details?id=" + 
      appPackageName; 
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, appName); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText); 
    context.startActivity(Intent.createChooser(shareIntent, context.getString(R.string 
      .share_with))); 
} 
1

अंत में इस कोड को मेरे लिए काम किया है हमारे एंड्रॉयड के ईमेल क्लाइंट खोलने के लिए है। इस स्निपेट को आजमाएं।

Intent testIntent = new Intent(Intent.ACTION_VIEW); 
        Uri data = Uri.parse("mailto:?subject=" + "Feedback" + "&body=" + "Write Feedback here....." + "&to=" + "[email protected]"); 
        testIntent.setData(data); 
        startActivity(testIntent); 
0

वास्तव में सबसे अच्छा तरीका है कि आप उन के बीच एप्लिकेशन sheared को, गूगल (firebase) साबित कर दिया नई तकनीक Firebase गतिशील लिंक कई लाइनों के माध्यम से आप यह कर सकते हैं इस दस्तावेज़ https://firebase.google.com/docs/dynamic-links/ और कोड

Uri dynamicLinkUri = dynamicLink.getUri(); 
     Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() 
      .setLink(Uri.parse("https://www.google.jo/")) 
      .setDynamicLinkDomain("rw4r7.app.goo.gl") 
      .buildShortDynamicLink() 
      .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { 
       @Override 
       public void onComplete(@NonNull Task<ShortDynamicLink> task) { 
        if (task.isSuccessful()) { 
         // Short link created 
         Uri shortLink = task.getResult().getShortLink(); 
         Uri flowchartLink = task.getResult().getPreviewLink(); 
         Intent intent = new Intent(); 
         intent.setAction(Intent.ACTION_SEND); 
         intent.putExtra(Intent.EXTRA_TEXT, shortLink.toString()); 
         intent.setType("text/plain"); 
         startActivity(intent); 
        } else { 
         // Error 
         // ... 
        } 
       } 
      }); 
है
संबंधित मुद्दे