как поделиться одной фотографией в андроиде?

Я делюсь одной фотографией на facebook, twitter, linkedin, picasa. Я могу поделиться текстом без каких-либо проблем. Может ли кто-нибудь объяснить на каком-нибудь примере, как поделиться одной фотографией. На данный момент я использую следующий код (Добавление действия Easy Share)

private ShareActionProvider mShareActionProvider;

  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate menu resource file.
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem item = menu.findItem(R.id.menu_item_share);
    mShareActionProvider = (ShareActionProvider) item.getActionProvider();
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    //Uri screenshotUri = Uri.fromFile(new File(getFilesDir(), ".jpg"));
    Log.d("Storage dir ", "Getting the directory");
    File f = FileUtils.getStorageDir();
    Log.d("All Answers: ", f.getAbsolutePath());
    sharingIntent.setType("image/png");
    sharingIntent.putExtra(Intent.EXTRA_STREAM,f);      
    startActivity(Intent.createChooser(sharingIntent, "Share image using"));
    // Set the share Intent
    mShareActionProvider.setShareIntent(sharingIntent);
    return true;
  }

  // Call to update the share intent
  private void setShareIntent(Intent shareIntent) {
    if (mShareActionProvider != null) {
        mShareActionProvider.setShareIntent(shareIntent);
    }
  }
}

Заранее спасибо


person user3011866    schedule 21.11.2013    source источник
comment
Я ответил на такой вопрос: > stackoverflow.com/questions/19700889/   -  person user2940520    schedule 21.11.2013


Ответы (3)


Обмен двоичными объектами (изображениями, видео и т. д.) Вы можете использовать этот код

Помимо поддержки текста, это намерение также поддерживает обмен изображениями или любым двоичным содержимым. Все, что вам нужно сделать, это установить соответствующий тип mime, а затем передать двоичные данные, вызвав метод put Extra.

 Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse(path);

sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));

Регистрация намерения

Если вы хотите, чтобы ваше приложение отображалось в списке при вызове этого намерения, вам необходимо добавить фильтр намерений в файл manifest.xml.

<intent-filter>
   <action android:name="android.intent.action.SEND" />
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="image/*" />
</intent-filter>

вы откроете диалоговое окно Chooser и выберите facebook и общую фотографию на facebook, twitter, linkedin и т. д.

person Sunil    schedule 21.11.2013

SocialLib — отличный набор для обмена файлами для Android (для iOS лучше всего ShareKit).

SocialLib позволяет интегрировать: Facebook Twitter Google Buzz LinkedIn

А если вы хотите использовать только Facebook для обмена, следуйте диалоговому окну "Поделиться на Facebook".

person Siddiq Abu Bakkar    schedule 21.11.2013

Попробуйте этот код:

    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/*");
    share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(filePath)));

Откроется диалоговое окно выбора со всеми возможными приложениями, позволяющими обмениваться фотографиями. Просто выберите Facebook, Twitter или любое другое приложение, в котором вы хотите поделиться своей фотографией.

person Zankhna    schedule 21.11.2013