2013-04-30 43 views
5

Instagram的份额的意图其实我想通过意向在Android电子

I found this solution for images saved on sdcard分享的Instagram的图片,但我想在现场图像做相同(链接)

我试着用

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("image/*"); 
    shareIntent 
      .putExtra(
        Intent.EXTRA_STREAM, 
        Uri.parse("http://www.alliswell.biz/images/products/art/alliswell_signs/yellowB.jpg")); 
    shareIntent.setPackage("com.instagram.android"); 
    startActivity(shareIntent); 

但它不工作..请帮助。

编辑

当我开始上述意图它会打开我的安装Instagram的应用程序,它会立即完成的Instagram和烤面包的消息来“无法下载文件”

其实它并没有分别解析链接和图像。什么应该是问题?

+0

定义*不工作*。任何错误消息? – Raptor 2013-04-30 10:06:08

+0

“无法下载文件”。消息来自Instagram的应用程序 – 2013-04-30 10:10:21

+0

这里同样的问题。试图找出图像是否存在。 – 2013-08-09 13:01:12

回答

2

您应该使用本地文件路径

例如: “文件:///path/to/file/image.png”。

请注意,在路径中包含“文件”非常重要,如果没有这部分,它也可以显示相同的烤面包。

+0

照片分享中仍然存在同样的问题。 – 2016-08-13 09:16:50

0

首先你需要从该网址下载文件。您可以参考这个代码从URL下载图像:

String imageUrl = "Your_Image_Url"; 

    if (imageUrl != null && !imageUrl.equals("")) { 

     String fileName = generateFileNameFromUrl(imageUrl); 

     String imageLocalPath = Environment.getExternalStorageDirectory()+ File.separator+"Your_App_Name"+ fileName; 

     if (!new File(imageLocalPath).exists()) { 

     ImageDownloadModel imageDownloadModel = new ImageDownloadModel(); 

     imageDownloadModel.setImageLocalPath(imageLocalPath); 

     imageDownloadModel.setImageUrl(imageUrl); 

     imageDownloadModels.add(imageDownloadModel); 

     } 
     ImageLoadAsynkTask imageLoadAsynkTask = new ImageLoadAsynkTask(new ImageDownloadDelegate(), imageDownloadModels, albumDir, activity); 
     imageLoadAsynkTask.execute(); 

,然后使用URI该图像共享它的Instagram:

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
shareIntent.setType("image/*"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + imageLocalPath)); 
shareIntent.setPackage("com.instagram.android"); 
activity.startActivity(shareIntent);