使用android intent将文本与图像共享到instagram

amm*_*com 11 java android sharing instagram

我知道之前已经多次询问过这个问题,我正在尝试使用发送意图为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;
Run Code Online (Sandbox Code Playgroud)

有人曾设法让它发挥作用吗?

它是不受支持还是已撤销支持?

Pau*_*sma 11

来自Instagram(2015年中)的官方声明宣布iOS和Android应用程序将不再接受预先填充的字幕:

从今天开始,iOS Hooks和Android Intents将停止接受第三方应用程序传递的字幕.这是一个非破坏性的变化:利用预填充字幕的现有移动应用程序将继续能够使用此流程通过Instagram应用程序共享媒体,但现在Instagram将忽略标题文本.要为第三方应用共享的照片或视频创建字幕,用户必须手动输入字幕,就像他们使用Instagram本机应用分享内容时一样.

看看Android的Instagram文档,我们确实看到没有提到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"));
Run Code Online (Sandbox Code Playgroud)

我很遗憾地说这根本不可能,我们由Facebook自行决定做出这个决定.


小智 6

在Instagram无法解决之前,我将文本复制到剪贴板并指示用户粘贴


Mar*_*rgo 0

我也有同样的问题。我认为目前不可能。

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();
    } 
Run Code Online (Sandbox Code Playgroud)

  • 请不要复制和粘贴旧帖子 (3认同)