2013-04-30 11 views
5

Właściwie chcę podzielić obraz na Instagram przez zamiaremintencją akcji na Instagram Android

I found this solution for images saved on sdcard ale chcę zrobić to samo dla obrazu na stronie (link)

Próbowałem z

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); 

Ale to nie działa .. Proszę o pomoc.

EDIT

Kiedy zacznę powyżej intencyjnego otwiera moje zainstalowaną aplikację Instagram i natychmiast zakończyć Instagram i komunikat tost pochodzi „nie można pobrać plik”

Właściwie to nie analizuje link i obraz odpowiednio . Co powinno być problemem?

+0

zdefiniować * nie działa *. Jakiś komunikat o błędzie? – Raptor

+0

"nie można pobrać pliku". wiadomość pochodzi z instagram app –

+0

Ten sam problem tutaj. Próbuję ustalić, czy obraz istnieje, czy nie. –

Odpowiedz

2

Należy użyć lokalną ścieżkę do pliku

Na przykład: "file: ///path/to/file/image.png".

Należy zauważyć, że bardzo ważne jest dołączenie "pliku" do ścieżki, bez tej części może również pokazywać toast.

+0

nadal otrzymuję ten sam problem z udostępnianiem zdjęć. –

0

Przede wszystkim musisz pobrać plik z tego adresu URL. można odnieść ten kod do pobierania obrazu z adresu 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(); 

a następnie użyć URI dla tego obrazu za podzielenie go na 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); 
Powiązane problemy