Я знаю, что этот вопрос уже задавался несколько раз, я пытаюсь добавить подпись к изображению, опубликованному в Instagram, используя намерение отправки.
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.putExtra(Intent.EXTRA_STREAM,uri);
shareIntent.putExtra(Intent.EXTRA_TEXT,"YOUR TEXT TO SHARE IN INSTAGRAM");
shareIntent.setPackage("com.instagram.android");
return shareIntent;
Кому-то когда-нибудь удавалось заставить его работать?
Он не поддерживается или поддержка отменена?
Ответ 1 · рейтинг 12 · Paul Lammertsma
Было официальное заявление от Instagram (середина 2015 г. ) с объявлением о том, что предварительно заполненные подписи больше не будут приниматься в приложениях для iOS и Android:
С сегодняшнего дня хуки iOS и намерения Android перестанут принимать субтитры, передаваемые сторонними приложениями. Это некритическое изменение: существующие мобильные приложения, в которых используются предварительно заполненные подписи, по-прежнему смогут использовать этот поток для обмена мультимедиа через приложения Instagram, но теперь Instagram будет игнорировать текст подписи. Чтобы создать подпись к фотографии или видео, опубликованным сторонним приложением, пользователям придется вводить подпись вручную, как они уже делают при обмене контентом с помощью собственных приложений Instagram.
Глядя на документацию Instagram для Android, мы действительно видим, что там нет упоминание о предоставлении обычной дополнительной строки Intent.EXTRA_TEXT в намерении, как это принято для других приложений. Их образец ограничен только предоставлением Uri:
// Add the URI to the Intent.
share.putExtra(Intent.EXTRA_STREAM, uri);
// Broadcast the Intent.
startActivity(Intent.createChooser(share, "Share to"));
К сожалению, это просто невозможно, и Facebook принимает это решение по своему усмотрению.
Ответ 3 · Martín Huergo
Я с той же проблемой. Я думаю, что в настоящее время это невозможно.
В https://instagram.com/developer/mobile-sharing/android-intents/ говорить только о Intent.EXTRA_STREAM, поэтому я полагаю, что это единственное доступное.
Вот мой код:
Intent instagramIntent = new Intent(Intent.ACTION_SEND);
instagramIntent.setType("image/*");
File media = new File(mediaPath);
Uri uri = Uri.fromFile(media);
instagramIntent.putExtra(Intent.EXTRA_STREAM, uri);
instagramIntent.setPackage("com.instagram.android");
PackageManager packManager = getPackageManager();
List<ResolveInfo> resolvedInfoList = packManager.queryIntentActivities(instagramIntent, PackageManager.MATCH_DEFAULT_ONLY);
boolean resolved = false;
for(ResolveInfo resolveInfo: resolvedInfoList){
if(resolveInfo.activityInfo.packageName.startsWith("com.instagram.android")){
instagramIntent.setClassName(
resolveInfo.activityInfo.packageName,
resolveInfo.activityInfo.name );
resolved = true;
break;
}
}
if(resolved){
startActivity(instagramIntent);
}else{
Toast.makeText(PromocionarMain.this, "Instagram App is not installed", Toast.LENGTH_LONG).show();
}
Ответ 4 · siliconeagle
Instagram перестал принимать предварительно заполненные подписи, чтобы повысить качество контента в системе. Смотрите этот пост.
http://developers.instagram.com/post/125972775561/removing-pre-filled-captions-from-mobile-sharing