Android और Facebook का इरादा साझा करें


84

मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं और यह जानना चाह रहा हूं कि आप एंड्रॉइड के शेयर इंटेंट्स का उपयोग करके ऐप के भीतर से ऐप उपयोगकर्ता की स्थिति को कैसे अपडेट कर सकते हैं।

फेसबुक के एसडीके के माध्यम से देखने के बाद ऐसा लगता है कि यह करना काफी आसान है, हालांकि मैं उपयोगकर्ता को नियमित शेयर इंटेंट पॉप अप विंडो के माध्यम से इसे करने की अनुमति देने के लिए उत्सुक हूं। यहाँ देखा:

पॉप अप

मैंने सामान्य शेयर इरादे कोड की कोशिश की है, हालांकि यह अब फेसबुक के लिए काम नहीं करता है।

public void invokeShare(Activity activity, String quote, String credit) {
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, activity.getString(R.string.share_subject));
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Example text");    

    activity.startActivity(Intent.createChooser(shareIntent, activity.getString(R.string.share_title)));
}

अद्यतन: अधिक खुदाई करने के बाद, ऐसा लगता है जैसे यह फेसबुक के ऐप के साथ एक बग है जिसे अभी तक हल नहीं किया गया है! ( फेसबुक बग ) मतलब समय के लिए ऐसा लग रहा है कि मैं सिर्फ नकारात्मक "शेयरिंग के साथ काम नहीं कर रहा हूँ" करने जा रहा हूँ !!! समीक्षा। चीयर्स फेसबुक: * (


एक साल के लिए कई संशोधनों के साथ टूट गया, मुझे समझ नहीं आता कि वे इसे ठीक क्यों नहीं करेंगे !!
नाथन श्वरमन

4
अभी भी टूटा। मैं यह सोचना शुरू कर रहा हूं कि वे इसे अपने बेवकूफ फेसबुक एसडीके का उपयोग करने के उद्देश्य से ठीक नहीं करते हैं।
अंकलस्टवन

5
यूजी, ऐसा प्रतीत होता है कि फेसबुक ने अब औपचारिक रूप से जवाब दिया है कि वे टूटे हुए व्यवहार पर विचार नहीं करते हैं और इसे बदल नहीं रहे हैं: Developers.facebook.com/bugs/332619626816423
स्कॉट डब्ल्यू

1
तो कम से कम कोई फिक्स या वर्कअराउंड तो नहीं? हमें खाली संदेश के साथ जीना है? : /
Ixx

1
दुर्भाग्य से केवल फिक्स या वर्कअराउंड अपने एसडीके को आपके ऐप में एकीकृत करना है।
जोसेफ वुडवर्ड

जवाबों:


97

Facebook एप्लिकेशन EXTRA_SUBJECTया तो EXTRA_TEXTफ़ील्ड्स को हैंडल नहीं करता है ।

यहाँ बग लिंक है: https://developers.facebook.com/bugs/332619626816423

साभार @billynomates:

बात यह है, यदि आप EXTRA_TEXTक्षेत्र में एक URL डालते हैं , तो यह काम करता है । यह ऐसा है जैसे वे जानबूझकर किसी पाठ को निकाल रहे हैं।


30
बात यह है, अगर आप EXTRA_TEXT क्षेत्र में एक URL डालते हैं, तो यह काम करता है । यह किसी भी पाठ को जानबूझकर छीनने जैसा है।
एमएसपीड

1
यह वास्तव में गूंगा है कि यह अभी भी आईओएस (लेखन के समय) पर काम करता है, लेकिन एंड्रॉइड पर काम नहीं करता है।
पीटर के।

शेयर इरादे के साथ केवल लिंक फेसबुक पर साझा किए जा सकते हैं।
मिशा अकोपोव

2
उपयोगकर्ताओं को हाथ से सामग्री टाइप करनी है: "कृपया ध्यान दें कि सुझाए गए सामग्री के साथ संदेश पैरामीटर को पूर्व-भरना जो उपयोगकर्ता संपादित कर सकता है वह भी एक नीति का उल्लंघन है" youtube.com/watch?v=tGz48L0m5nc
kouretinho

1
@PeterK। क्या आपको फेसबुक पर पाठ भेजने का एक तरीका मिला?
करण खुराना

113

जाहिरा तौर पर फेसबुक अब (2014 के अनुसार) आपको साझाकरण स्क्रीन को अनुकूलित करने की अनुमति देता है, भले ही आप केवल शार्पर.php URL खोल रहे हों या अधिक विशिष्ट तरीकों से एंड्रॉइड इंटेंट का उपयोग कर रहे हों । उदाहरण के लिए देखें ये उत्तर:

वैसे भी, सादे इरादों का उपयोग करते हुए, आप अभी भी एक URL साझा कर सकते हैं , लेकिन इसके साथ कोई डिफ़ॉल्ट पाठ नहीं , जैसा कि billynomates ने टिप्पणी की है । (इसके अलावा, यदि आपके पास साझा करने के लिए कोई URL नहीं है, तो बस खाली "लिख पोस्ट" (यानी स्थिति अद्यतन) के साथ फेसबुक ऐप लॉन्च करना समान रूप से आसान है, नीचे दिए गए कोड का उपयोग करें लेकिन बाहर छोड़ दें EXTRA_TEXT।)

यहां मैंने सबसे अच्छा समाधान पाया है जिसमें किसी भी फेसबुक एसडीके का उपयोग करना शामिल नहीं है।

यह कोड आधिकारिक फेसबुक ऐप को सीधे खोलता है यदि यह स्थापित है, और अन्यथा एक ब्राउज़र में sharer.php खोलने के लिए वापस आता है। (इस प्रश्न के अधिकांश अन्य समाधान एक विशाल "पूर्ण क्रिया का उपयोग करके लाते हैं ..." संवाद जो बिल्कुल भी इष्टतम नहीं है!)

String urlToShare = "/programming/7545254";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// intent.putExtra(Intent.EXTRA_SUBJECT, "Foo bar"); // NB: has no effect!
intent.putExtra(Intent.EXTRA_TEXT, urlToShare);

// See if official Facebook app is found
boolean facebookAppFound = false;
List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo info : matches) {
    if (info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) {
        intent.setPackage(info.activityInfo.packageName);
        facebookAppFound = true;
        break;
    }
}

// As fallback, launch sharer.php in a browser
if (!facebookAppFound) {
    String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare;
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
}

startActivity(intent);

( com.facebook.katanaपैकेज के नाम के बारे में , MatheusJardimB की टिप्पणी देखें )

परिणाम मेरे नेक्सस 7 (एंड्रॉइड 4.4) पर इस तरह दिखता है जिसमें फेसबुक ऐप इंस्टॉल किया गया है:

यहाँ छवि विवरण दर्ज करें


3
"com.facebook.katana" फेसबुक ऐप के लिए पैकेज का नाम है और "com.facebook.orca" एफ मैसेंजर ऐप के लिए है। आप अपने इच्छित pckg को बदल सकते हैं। यदि आप एक निर्दिष्ट नहीं करते हैं, तो पहला पाया उपयोग किया जाएगा (अच्छा नहीं)
MatheusJardimB

1
अच्छी पकड़, धन्यवाद! मैंने जवाब अपडेट किया। टर्न आउट फेसबुक ने अन्य ऐप ( होम और पेज मैनेजर ) भी जारी किए हैं जो com.facebookउपसर्ग से भी मेल खाएंगे ।
जोनिक

helow ... अगर मुझे post edittext भरना है तो facebook के साथ कैसे काम करना है।
दास

url के साथ टेक्स्ट कैसे सेट करें?
आनंद सवजनी

आप नहीं कर सकते हैं (जैसा कि बहुत शुरुआत के पास बोल्ड में उल्लेख किया गया है)। कृपया उत्तर पढ़ें।
जोनिक

16

हमेशा की तरह

जो आप पूछ रहे हैं उसे बनाने का सामान्य तरीका है, बस निम्नलिखित कार्य करना है:

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, "The status update text");
    startActivity(Intent.createChooser(intent, "Dialog title text"));

यह मेरे लिए किसी भी मुद्दे के बिना काम करता है।

वैकल्पिक तरीका (शायद)

ऐसा करने के साथ संभावित समस्या यह है कि आप ई-मेल, एसएमएस इत्यादि के माध्यम से भी संदेश भेजने की अनुमति दे रहे हैं। निम्नलिखित कोड कुछ ऐसा है जो मैं किसी एप्लिकेशन में उपयोग कर रहा हूं, जिससे उपयोगकर्ता मुझे ई भेज सकता है। जीमेल का उपयोग कर। मुझे लगता है कि आप इसे केवल फेसबुक के साथ काम करने के लिए बदलने की कोशिश कर सकते हैं।

मुझे यकीन नहीं है कि यह किसी भी त्रुटि या अपवाद पर प्रतिक्रिया करता है (मैं अनुमान लगा रहा हूं कि अगर फेसबुक स्थापित नहीं होता है), तो आपको इसे थोड़ा परीक्षण करना पड़ सकता है।

    try {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        String[] recipients = new String[]{"e-mail address"};
        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "E-mail subject");
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "E-mail text");
        emailIntent.setType("plain/text"); // This is incorrect MIME, but Gmail is one of the only apps that responds to it - this might need to be replaced with text/plain for Facebook
        final PackageManager pm = getPackageManager();
        final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
        ResolveInfo best = null;
        for (final ResolveInfo info : matches)
            if (info.activityInfo.packageName.endsWith(".gm") ||
                    info.activityInfo.name.toLowerCase().contains("gmail")) best = info;
                if (best != null)
                    emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
                startActivity(emailIntent);
    } catch (Exception e) {
        Toast.makeText(this, "Application not found", Toast.LENGTH_SHORT).show();
    }

3
आपके जवाब के लिए धन्यवाद। हालांकि यह मुझे भ्रमित करता है, आपके द्वारा पोस्ट किए गए कोड का पहला स्निप्ट शेयर इंटेंट्स के साथ हर दूसरे ऐप पर पोस्ट करने के लिए ठीक काम करता है, हालांकि फेसबुक के इरादे से यह उपयोगकर्ता को एक रिक्त स्थान पर ले जाता है "कुछ लिखें" फेसबुक पेज जैसे कि यह नहीं भेज रहा है या संभवतः प्राप्त) EXTRA_TEXT फ़ील्ड के भीतर पाठ।
जोसेफ वुडवर्ड

हम्म, यह मेरे टेबलेट पर पहले वाले के साथ ठीक काम करता है। जैसा कि कहा गया है, EXTRA_SUBJECT फ़ील्ड के बिना इसे आज़माएँ। इससे फर्क पड़ता दिख रहा है।
माइकल बेक

1
वास्तव में, मैंने अभी इसकी जाँच की और हाँ - यह टूट गया है। काम करते थे।
मीकेल बाक

हाँ, जैसा कि मेरी संपादित पहली पोस्ट में बताया गया है कि यह फेसबुक ऐप में एक बग प्रतीत होता है जो अप्रैल 2011 (!) के बाद से है। भले ही, मेरे सवाल का जवाब देने के लिए समय निकालने के लिए धन्यवाद।
जोसेफ वुडवर्ड

4
@TomSusel Yep, Facebook को अपनी गंदगी एक साथ मिलनी चाहिए। यह तब काम करता है जब URL को शामिल किया जाता है। डाउनवोट के लिए धन्यवाद ;-)
माइकल बक

5

लॉलीपॉप (21) में, आप Intent.EXTRA_REPLACEMENT_EXTRASविशेष रूप से फेसबुक के इरादे को ओवरराइड करने के लिए उपयोग कर सकते हैं (और केवल एक लिंक निर्दिष्ट करें)

https://developer.android.com/reference/android/content/Intent.html#EXTRA_REPLACEMENT_EXTRAS

private void doShareLink(String text, String link) {
  Intent shareIntent = new Intent(Intent.ACTION_SEND);
  shareIntent.setType("text/plain");
  Intent chooserIntent = Intent.createChooser(shareIntent, getString(R.string.share_via));

  // for 21+, we can use EXTRA_REPLACEMENT_EXTRAS to support the specific case of Facebook
  // (only supports a link)
  // >=21: facebook=link, other=text+link
  // <=20: all=link
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    shareIntent.putExtra(Intent.EXTRA_TEXT, text + " " + link);
    Bundle facebookBundle = new Bundle();
    facebookBundle.putString(Intent.EXTRA_TEXT, link);
    Bundle replacement = new Bundle();
    replacement.putBundle("com.facebook.katana", facebookBundle);
    chooserIntent.putExtra(Intent.EXTRA_REPLACEMENT_EXTRAS, replacement);
  } else {
    shareIntent.putExtra(Intent.EXTRA_TEXT, link);
  }

  chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(chooserIntent);
}

5

मुझे पता चला कि आप केवल पाठ या छवि साझा कर सकते हैं , दोनों का उपयोग नहीं Intents। नीचे दिए गए कोड शेयरों में केवल छवि मौजूद है, या केवल पाठ यदि छवि बाहर नहीं निकलती है। यदि आप दोनों को साझा करना चाहते हैं, तो आपको उपयोग करने की आवश्यकता है यहां से फेसबुक एसडीके है।

यदि आप नीचे दिए गए कोड के बजाय अन्य समाधान का उपयोग करते हैं, तो पैकेज नाम com.facebook.lite निर्दिष्ट करना न भूलें , जो कि फेसबुक लाइट का पैकेज नाम है । मैंने परीक्षण नहीं किया है, लेकिन com.facebook.orca फेसबुक मैसेंजर का पैकेज नाम है यदि आप उसे भी लक्षित करना चाहते हैं।

आप व्हाट्सएप , ट्विटर के साथ साझा करने के लिए और अधिक तरीके जोड़ सकते हैं ...

public class IntentShareHelper {

    /**
     * <b>Beware,</b> this shares only image if exists, or only text if image does not exits. Can't share both
     */
    public static void shareOnFacebook(AppCompatActivity appCompatActivity, String textBody, Uri fileUri) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT,!TextUtils.isEmpty(textBody) ? textBody : "");

        if (fileUri != null) {
            intent.putExtra(Intent.EXTRA_STREAM, fileUri);
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.setType("image/*");
        }

        boolean facebookAppFound = false;
        List<ResolveInfo> matches = appCompatActivity.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        for (ResolveInfo info : matches) {
            if (info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana") ||
                info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.lite")) {
                intent.setPackage(info.activityInfo.packageName);
                facebookAppFound = true;
                break;
            }
        }

        if (facebookAppFound) {
            appCompatActivity.startActivity(intent);
        } else {
            showWarningDialog(appCompatActivity, appCompatActivity.getString(R.string.error_activity_not_found));
        }
    }

    public static void shareOnWhatsapp(AppCompatActivity appCompatActivity, String textBody, Uri fileUri){...}

    private static void showWarningDialog(Context context, String message) {
        new AlertDialog.Builder(context)
                .setMessage(message)
                .setNegativeButton(context.getString(R.string.close), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                })
                .setCancelable(true)
                .create().show();
    }
}

फ़ाइल से उरी प्राप्त करने के लिए , नीचे दिए गए वर्ग का उपयोग करें:

public class UtilityFile {
    public static @Nullable Uri getUriFromFile(Context context, @Nullable File file) {
        if (file == null)
            return null;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            try {
                return FileProvider.getUriForFile(context, "com.my.package.fileprovider", file);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        } else {
            return Uri.fromFile(file);
        }
    }

    // Returns the URI path to the Bitmap displayed in specified ImageView       
    public static Uri getLocalBitmapUri(Context context, ImageView imageView) {
        Drawable drawable = imageView.getDrawable();
        Bitmap bmp = null;
        if (drawable instanceof BitmapDrawable) {
            bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
        } else {
            return null;
        }
        // Store image to default external storage directory
        Uri bmpUri = null;
        try {
            // Use methods on Context to access package-specific directories on external storage.
            // This way, you don't need to request external read/write permission.
            File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
            FileOutputStream out = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
            out.close();

            bmpUri = getUriFromFile(context, file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bmpUri;
    }    
}

FileProvider लिखने के लिए , इस लिंक का उपयोग करें: https://github.com/codepath/android_guides/wiki/Sharing-Content-with-Intents


4

यहाँ मैंने जो किया है (पाठ के लिए)। कोड में, मैं क्लिपबोर्ड पर जो भी पाठ आवश्यक है, उसकी प्रतिलिपि बनाता हूं। पहली बार जब कोई व्यक्ति शेयर इरादे के बटन का उपयोग करने की कोशिश करता है, तो मुझे एक अधिसूचना पॉप अप होती है जो बताती है कि क्या वे फेसबुक पर साझा करना चाहते हैं, उन्हें 'फेसबुक' पर क्लिक करने की आवश्यकता है और फिर पेस्ट करने के लिए लंबे समय तक प्रेस करना होगा (यह उन्हें जागरूक करने के लिए है कि फेसबुक एंड्रॉयड इरादा प्रणाली BROKEN है)। फिर संबंधित जानकारी क्षेत्र में है। मैं इस पोस्ट का लिंक भी शामिल कर सकता हूं ताकि उपयोगकर्ता भी शिकायत कर सकें ...

private void setClipboardText(String text) { // TODO
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        clipboard.setText(text);
    } else {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
        android.content.ClipData clip = android.content.ClipData.newPlainText("text label",text);
        clipboard.setPrimaryClip(clip);
    }
}

नीचे w / पूर्व संस्करणों से निपटने के लिए एक विधि है

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_item_share:
        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_TEXT, "text here");

        ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); //TODO
         ClipData clip = ClipData.newPlainText("label", "text here");
         clipboard.setPrimaryClip(clip);

        setShareIntent(shareIntent); 

        break;
    }
        return super.onOptionsItemSelected(item);
}

2

फेसबुक के संस्करण 4.0.0 में ऐसा लगता है कि बहुत सारी चीजें बदल गई हैं। यह मेरा कोड है जो ठीक काम कर रहा है। आशा है कि यह आपकी मदद करता है।

    /**
     * Facebook does not support sharing content without using their SDK however
     * it is possible to share URL
     *
     * @param content
     * @param url
     */
    private void shareOnFacebook(String content, String url)
    {
        try
        {
            // TODO: This part does not work properly based on my test
            Intent fbIntent = new Intent(Intent.ACTION_SEND);
            fbIntent.setType("text/plain");
            fbIntent.putExtra(Intent.EXTRA_TEXT, content);
            fbIntent.putExtra(Intent.EXTRA_STREAM, url);
            fbIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            fbIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            fbIntent.setComponent(new ComponentName("com.facebook.katana",
                    "com.facebook.composer.shareintent.ImplicitShareIntentHandler"));

            startActivity(fbIntent);
            return;
        }
        catch (Exception e)
        {
            // User doesn't have Facebook app installed. Try sharing through browser.
        }

        // If we failed (not native FB app installed), try share through SEND
        String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + url;
        SupportUtils.doShowUri(this.getActivity(), sharerUrl);
    }

1
SupportUtils क्या है?
सिल्विया एच

2

यह घोल अस्वस्थ का काम करता है। यदि कोई फेसबुक स्थापित नहीं है, तो यह सामान्य शेयर-संवाद चलाता है। अगर वहाँ है और आप लॉग इन नहीं हैं, तो यह लॉगिन स्क्रीन पर जाता है। यदि आप लॉग इन हैं, तो यह शेयर डायलॉग खोलेगा और इंटेंट एक्स्ट्रा से "शेयर यूआरएल" में डाल देगा।

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Share url");
intent.setType("text/plain");

List<ResolveInfo> matches = getMainFragmentActivity().getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo info : matches) {
    if (info.activityInfo.packageName.toLowerCase().contains("facebook")) {
        intent.setPackage(info.activityInfo.packageName);
    }
}

startActivity(intent);

0

यहाँ कुछ ऐसा है जो मैंने लिंक के साथ फेसबुक ऐप खोला है

shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setComponent(new ComponentName("com.facebook.katana",
                    "com.facebook.katana.activity.composer.ImplicitShareIntentHandler"));

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,  videoUrl);

2
मेरे लिए काम नहीं किया। शायद फेसबुक ने ImplicitShareIntentHandler का नाम बदल दिया है।
हेसाम

0
    public void invokeShare(Activity activity, String quote, String credit) {
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, activity.getString(R.string.share_subject));
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Example text");    
    shareIntent.putExtra("com.facebook.platform.extra.APPLICATION_ID", activity.getString(R.string.app_id));                        
    activity.startActivity(Intent.createChooser(shareIntent, activity.getString(R.string.share_title)));
}

0

फेसबुक सादे पाठ डेटा को साझा करने की अनुमति नहीं देता है Intent.EXTRA_TEXTलेकिन आप इसका उपयोग करके फेसबुक मैसेंजर के साथ टेक्स्ट + लिंक साझा कर सकते हैं, यह मेरे लिए ठीक काम करता है

            Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_TEXT, text+url link);
            sendIntent.setType("text/plain");
            sendIntent.setPackage("com.facebook.orca");
            startActivity(sendIntent);

0

सबसे आसान तरीका है कि मैं अपने ऐप से फेसबुक पर एक संदेश पारित करने के लिए मिल सकता था प्रोग्रामेटिक रूप से क्लिपबोर्ड पर कॉपी करें और उपयोगकर्ता को सचेत करें कि उनके पास पेस्ट करने का विकल्प है। यह उपयोगकर्ता को मैन्युअल रूप से करने से बचाता है; मेरा ऐप पेस्ट नहीं हो रहा है लेकिन उपयोगकर्ता कर सकता है।

...
if (app.equals("facebook")) {
    // overcome fb 'putExtra' constraint;
    // copy message to clipboard for user to paste into fb.
    ClipboardManager cb = (ClipboardManager) 
            getSystemService(Context.CLIPBOARD_SERVICE);
    ClipData clip = ClipData.newPlainText("post", msg);
    cb.setPrimaryClip(clip);

    // tell the to PASTE POST with option to stop showing this dialogue
    showDialog(this, getString(R.string.facebook_post));
}
startActivity(appIntent);
...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.