Android : Come condividere immagini con testo su facebook tramite intento ?

? Mansi @ | Original: StackOverFlow
---

Mi piacerebbe condividere una foto con didascalia pre - riempita dalla mia app tramite un intento quota, su 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);

Ecco schermata cosa ottengo

Android : Come condividere immagini con testo su facebook tramite intento ?

Se un tipo di set di image / * poi una foto viene caricato senza il testo precompilato . Se un set a text / plain foto non è visualizzare .....

---

Top 5 Risposta

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 @

Aggiungere queste righe al seguente codice

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

Le ultime versioni di Facebook non consente di condividere il testo con intenti . Devi usare il Facebook SDK per farlo - per rendere così semplice, utilizzare il Facebook SDK + Android Simple Facebook ( https://github.com/sromku/android-simple-facebook ) . Utilizzando la libreria, il codice sarebbe stato così ( estratto dal sito Simple Facebook) :

Publish feed

Impostare OnPublishListener e chiedere :

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

Inizializzare ascoltatore callback :

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

Pubblicare un mangime senza finestra :

mSimpleFacebook.publish(feed, onPublishListener);

Pubblicare feed con finestra :

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

FB non consente di precompilare il messaggio di condivisione .

Per aggirare questo, è necessario utilizzare un SDK per pubblicare tramite una richiesta di grafico . Per questo è necessario il permesso di publish_actions . Dal mese scorso è necessario https://developers.facebook.com/docs/facebook-login/permissions/v2.2 per accedere al publish_actions . Quale si dovrebbe riuscire se la vostra applicazione prefills i testi di condivisione . Fidati di me - ho avuto la Chutzppah provare .

Così sembra che dovremmo rispettare .

B.t.w. in iOS è ancora possibile precompilare i testi utilizzando la sdk FB . Chissà per quanto tempo .