2011-11-29 8 views
21

मुझे शेयर इरादा पसंद है, छवि और टेक्स्ट पैरामीटर के साथ साझा करने वाले ऐप्स खोलना सही है।एक विशिष्ट ऐप खोलने के लिए शेयर इरादे को कैसे बल दें?

लेकिन अब मैं शेयर के इरादे से दिए गए पैरामीटर के साथ, सूची से एक विशिष्ट ऐप खोलने के लिए शेयर इरादे को मजबूर करने के तरीके का शोध कर रहा हूं।

यह मेरा वास्तविक कोड है, यह फोन पर स्थापित शेयरिंग ऐप्स की सूची दिखाता है। कृपया, क्या कोई मुझे बता सकता है कि मुझे कोड में क्या जोड़ना चाहिए उदाहरण के लिए आधिकारिक ट्विटर ऐप? और आधिकारिक faccebok ऐप?

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
Uri screenshotUri = Uri.parse("file:///sdcard/test.jpg"); 
sharingIntent.setType("image/*"); 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "body text"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
startActivity(Intent.createChooser(sharingIntent, "Share image using")); 

धन्यवाद

+0

क्या आपके पास कोई फेसबुक संबंधित प्रश्न है? – Lix

+0

क्या ऐसा करने से यह असफल हो जाता है अगर उन्होंने आधिकारिक ट्विटर ऐप का उपयोग नहीं किया? आप इस बात को सीमित क्यों करना चाहते हैं कि कोई कैसे साझा करता है? – lathomas64

उत्तर

34

फेसबुक

public void shareFacebook() { 
     String fullUrl = "https://m.facebook.com/sharer.php?u=.."; 
     try { 
      Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
      sharingIntent.setClassName("com.facebook.katana", 
        "com.facebook.katana.ShareLinkActivity"); 
      sharingIntent.putExtra(Intent.EXTRA_TEXT, "your title text"); 
      startActivity(sharingIntent); 

     } catch (Exception e) { 
      Intent i = new Intent(Intent.ACTION_VIEW); 
      i.setData(Uri.parse(fullUrl)); 
      startActivity(i); 

     } 
    } 

ट्विटर के लिए।

public void shareTwitter() { 
     String message = "Your message to post"; 
     try { 
      Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
      sharingIntent.setClassName("com.twitter.android","com.twitter.android.PostActivity"); 
      sharingIntent.putExtra(Intent.EXTRA_TEXT, message); 
      startActivity(sharingIntent); 
     } catch (Exception e) { 
      Log.e("In Exception", "Comes here"); 
      Intent i = new Intent(); 
      i.putExtra(Intent.EXTRA_TEXT, message); 
      i.setAction(Intent.ACTION_VIEW); 
      i.setData(Uri.parse("https://mobile.twitter.com/compose/tweet")); 
      startActivity(i); 
     } 
    } 
+0

क्या मैं ट्वीट के लिए एक तस्वीर संलग्न कर सकता हूं? – Intathep

+6

यह अब फेसबुक – younes0

+1

के लिए काम नहीं करता है, यदि ट्विटर ऐप इंस्टॉल किया गया है तो यह गतिविधि अपवाद enen नहीं मिला – Rahul

6

ऐसा करने के लिए एक और तरीका सामान्य है, और आवेदन उद्देश्य के पूर्ण पैकेज नाम को जानना आवश्यक नहीं है। इस विधि सिर्फ उपयोग करें यदि आप आप चाहते हैं किसी भी अनुप्रयोग में कुछ साझा या हर क्रिया के माध्यम से एक यूआरएल खोलना चाहते हैं How to customize share intent in Android?

1

100% कार्य समाधान

,:

यह पोस्ट देखें

private void shareOrViewUrlViaThisApp(String appPackageName, String url) { 
    boolean found = false; 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse(url)); 

    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0); 
    if (!resInfo.isEmpty()){ 
     for (ResolveInfo info : resInfo) { 
      if (info.activityInfo.packageName.toLowerCase().contains(appPackageName) || 
        info.activityInfo.name.toLowerCase().contains(appPackageName)) { 

       intent.setPackage(info.activityInfo.packageName); 
       found = true; 
       break; 
      } 
     } 
     if (!found) 
      return; 

     startActivity(Intent.createChooser(intent, "Select")); 
    } 
} 

और बस फोन:

shareOrViewUrlViaThisApp(<your package name>,<your url>); 

यह उत्तर this से प्रेरित था।

संबंधित मुद्दे