Android : Как разделить изображение с текстом на Facebook через намерениях ?

? Mansi @ | Original: StackOverFlow
---

Я хотел бы поделиться фото с заголовка, предварительно заполненные от моего приложения с помощью намерения акций, на 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);

Вот снимок экрана, что я получаю

Android : Как разделить изображение с текстом на Facebook через намерениях ?

Еслинабор типа для изображения / *, то фото загружено без текста укажи . Еслиустановить его в текст / равнина фотография не отображать .....

---

Top 5 ответ

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 @

Добавьте эти строки в следующем коде

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

Новейшие версии Facebook не позволяет передавать текст с помощью намерения . Вы должны использовать Facebook SDK, чтобы сделать это - сделать так просто, используйте Facebook SDK + Android Простой Facebook ( https://github.com/sromku/android-simple-facebook ) . Используя библиотеку, ваш код будет так (выдержка из простого сайта Facebook ) :

Publish feed

Установите OnPublishListener и призываем:

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

Инициализация обратного вызова слушателя :

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

Опубликовать корма без диалога :

mSimpleFacebook.publish(feed, onPublishListener);

Опубликовать сырья с диалога :

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

Не FB больше не позволяет предварительного заполнения сообщение обмена .

Для того чтобы обойти это, вы должны будете использовать SDK для публикации через запросу Graph. Для этого вам понадобится publish_actions разрешение. С прошлого месяца вы должны https://developers.facebook.com/docs/facebook-login/permissions/v2.2, чтобы получить доступ к publish_actions . Какие бы вы потерпеть неудачу, если ваше приложение может содержать только тексты общего доступа. Поверьте мне - я имелChutzppah попробовать.

Так что похоже, что мы должны соблюдать .

B.t.w. в ИО вы можете предварительного заполнения тексты, используя SDK FB . Кто знает, как долго.