Android : Wie man Bild mit Text auf Facebook über Absicht teilen ?

? Mansi @ | Original: StackOverFlow
---

Ich möchte ein Foto gemeinsam mit Beschriftung von meiner app vorgefüllten über einen Anteil der Absicht, auf Facebook .

Example code

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");      

intent.putExtra(Intent.EXTRA_TEXT, "eample");
intent.putExtra(Intent.EXTRA_TITLE, "example");
intent.putExtra(Intent.EXTRA_SUBJECT, "example");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);

Intent openInChooser = new Intent(intent);
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
startActivity(openInChooser);

Hier Screenshot, was ich kriegen

Android : Wie man Bild mit Text auf Facebook über Absicht teilen?

Wenn ein Satz Typ image / * dann ein Foto, ohne den Text vorgefüllt hochgeladen . Wenn ein Satz in Text / plain Foto wird nicht angezeigt, .....

---

Top 5 Antwort

1Vaishali @
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);

   shareIntent.setType("image/*");

   shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, (String) v.getTag(R.string.app_name));

   shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); // put your image URI

   PackageManager pm = v.getContext().getPackageManager();

   List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);

     for (final ResolveInfo app : activityList) 
     {
         if ((app.activityInfo.name).contains("facebook")) 
         {

           final ActivityInfo activity = app.activityInfo;

           final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);

          shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);

          shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

          shareIntent.setComponent(name);

          v.getContext().startActivity(shareIntent);

          break;
        }
      }
2Rithchard Javier @

Try with this

private void initShareIntent(String type,String _text){
     File filePath = getFileStreamPath("shareimage.jpg");  //optional //internal storage
     Intent shareIntent = new Intent();
     shareIntent.setAction(Intent.ACTION_SEND);
     shareIntent.putExtra(Intent.EXTRA_TEXT, _text);
     shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(filePath)));  //optional//use this when you want to send an image
     shareIntent.setType("image/jpeg");
     shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
     startActivity(Intent.createChooser(shareIntent, "send"));
}
3Karthik P B @

Fügen Sie die folgenden Zeilen in Ihrer folgenden Code

shareCaptionIntent.putExtra(Intent.EXTRA_TITLE, "my awesome caption in the EXTRA_TITLE field");
4Eduardo Oliveira @

Die neuesten Facebook -Versionen ermöglicht es Ihnen nicht um Text mit Absichten zu teilen. Sie haben die Facebook SDK verwenden, es zu tun -, dass einfach zu machen, verwenden Sie den Facebook SDK + Android Einfache Face ( https://github.com/sromku/android-simple-facebook ) . Benutzung der Bibliothek, würde der Code wie folgt sein ( von der einfachen Facebook-Seite extrahiert ) :

Publish feed

Stellen Sie OnPublishListener und fordern :

publish(Feed, OnPublishListener) without dialog. publish(Feed, true, OnPublishListener) with dialog. Basic properties message - The message of the user name - The name of the link attachment caption - The caption of the link (appears beneath the link name) description - The description of the link (appears beneath the link caption) picture - The URL of a picture attached to this post. The picture must be at least 200px by 200px link - The link attached to this post

Initialisieren Rückruf Zuhörer :

OnPublishListener onPublishListener = new OnPublishListener() {
    @Override
        public void onComplete(String postId) {
            Log.i(TAG, "Published successfully. The new post id = " + postId);
        }

     /* 
      * You can override other methods here: 
      * onThinking(), onFail(String reason), onException(Throwable throwable)
      */
};

Build feed:

Feed feed = new Feed.Builder()
    .setMessage("Clone it out...")
    .setName("Simple Facebook for Android")
    .setCaption("Code less, do the same.")
    .setDescription("The Simple Facebook library project makes the life much easier by coding less code for being able to login, publish feeds and open graph stories, invite friends and more.")
    .setPicture("https://raw.github.com/sromku/android-simple-facebook/master/Refs/android_facebook_sdk_logo.png")
    .setLink("https://github.com/sromku/android-simple-facebook")
    .build();

Veröffentlichen Futter ohne Dialog :

mSimpleFacebook.publish(feed, onPublishListener);

Veröffentlichen Feed mit Dialog :

mSimpleFacebook.publish(feed, true, onPublishListener);
5Vaiden @

FB nicht mehr erlaubt Ihnen, die Freigabenachricht prefill .

Um dies zu umgehen, müssen Sie ein SDK verwenden, um über ein Graph Anfrage zu veröffentlichen. Dazu benötigen Sie die publish_actions Erlaubnis. Seit letzten Monat müssen Sie https://developers.facebook.com/docs/facebook-login/permissions/v2.2 um Zugang zu erhalten publish_actions . Welches würden Sie scheitern, wenn Ihre Anwendung vorbelegt die gemeinsame Nutzung Texte . Vertrauen Sie mir - ich habe die Chutzppah es zu versuchen .

So wie es aussieht, wir müssten zu erfüllen.

B.t.w. in iOS können Sie immer noch prefill die Texte mit dem FB sdk . Wer weiß, wie lange.