Flickr, Tumblr, Instagram делятся намерениями в Android

Я хочу поделиться изображением через Flickr, Tumblr, Instagram. Я хочу сделать это с этими 3 установленными приложениями. Я нашел для Instagram:

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_TEXT, "" + getShareText());
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "" + getShareText());
shareIntent.putExtra(Intent.EXTRA_STREAM,
                    Uri.parse("file://" + file.getAbsolutePath()));
shareIntent.setPackage("com.instagram.android");

Могу ли я также иметь Tumblr и Flickr? Да, я могу использовать процесс Oauth, интегрируя библиотеки. Но я хочу поделиться через конкретное установленное приложение.


person Bhavesh Hirpara    schedule 20.05.2013    source источник


Ответы (3)


Просто установите правильное имя пакета в:

sendIntent.setPackage(PACKAGE_NAME);
  • Тамблер: com.tumblr
  • Фликр: com.yahoo.mobile.client.android.flickr

Вы можете найти имена пакетов в URL-адресах Google Play Store:

https://play.google.com/store/apps/details?id=ИМЯ_ПАКЕТА

PS: лучше сначала проверить, установлено ли приложение на устройстве:

  try
  {
    getPackageManager().getApplicationInfo(PACKAGE_NAME, 0);
  }
  catch (PackageManager.NameNotFoundException e)
  {
    // Twitter not installed
  }

Для совместного использования с помощью SEND_ACTION не требуется OAUTH в вашем приложении, аутентификация управляется в целевом приложении.

Спасибо

person ebtokyo    schedule 04.06.2013

Если вы удалите последнюю строку (setPackage), все установленные приложения, которые могут обрабатывать отправку изображений, будут отображаться в диалоговом окне выбора приложений, включая tumblr и flickr. Если вы хотите ограничить приложения только тремя упомянутыми вами приложениями: зачем вам это? Вы просто ограничите то, что пользователь может делать с вашим приложением. Я все равно не думаю, что это возможно.

person Ciske    schedule 20.05.2013

Более подробная информация о создании намерений Android для изображений и видео доступна по адресу http://instagram.com/developer/mobile-sharing/android-intents/

person Babatunde Adeyemi    schedule 16.10.2014