从另一个Android应用程序打开Instagram应用程序并发送带有标题的图像

时间:2013-10-10 08:30:37

标签: android instagram

我基本上寻找的是从另一个应用程序打开Instagram应用程序并发送带有标题的图像。 在iOS中有一些有用的文档可以做到这一点。 (iPhone-hooks

Instagram是否支持在iOS中执行自定义操作,如iPhone-hooks中所述?

以下是我的应用程序中用于部分执行此任务的当前代码。

private void sendImageToIntagram(Activity activity) {
    Intent intent = activity.getPackageManager().getLaunchIntentForPackage("com.instagram.android");
    if (intent != null) {
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.setPackage("com.instagram.android");
        String imagePath = ImageUtil.getProcessedImage().getAbsolutePath();
        try {
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(activity.getContentResolver(), imagePath, "Title", "Description")));
            // shareIntent.putExtra(Intent.EXTRA_TITLE,  "Caption 01");
            // shareIntent.putExtra(Intent.EXTRA_TEXT,   "Caption 02");
            // shareIntent.putExtra(Intent.EXTRA_SUBJECT,"Caption 03");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        shareIntent.setType("image/jpeg");
        activity.startActivity(shareIntent);
    } else {
        // bring user to the market to download the app.

        intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setData(Uri.parse("market://details?id=" + "com.instagram.android"));
        activity.startActivity(intent);
    }
}

上述标题,说明,标题01,标题02,标题03均无效。

然后我尝试了,

shareIntent.setAction(Intent.ACTION_SEND); - > shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);

shareIntent.setType("image/jpeg");
shareIntent.setType("image/*");
shareIntent.setType("*/*"); 

也是如此,但上述都没有奏效。

2 个答案:

答案 0 :(得分:4)

简短回答,不。

Instagram没有与iPhone挂钩相当的Android。

他们确实支持ACTION_SEND,但只考虑了Intent.EXTRA_STREAM的结尾。

除非在过去4个月内发生变化(我怀疑),这个家伙通过查看他们的AndroidManifest.xml活动,从他们的intent catcher中获取了他们的代码存根。照顾android.intent.extra.STREAM

所以现在,你不能发送除实际图像之外的任何其他数据。

答案 1 :(得分:4)

看看Chriskot的this question,特别是this answer,看起来自2014年7月起Instagram就可以让你这样做。

长话短说

Intent instagram = new Intent(android.content.Intent.ACTION_SEND);  
instagram.setType("image/*");
instagram.putExtra(Intent.EXTRA_STREAM, [URI of photo]);
instagram.putExtra(Intent.EXTRA_TEXT, [Text of caption]);
instagram.setPackage(instagramPackageName);   
startActivity(instagram);