2013-04-30 8 views
5

Eigentlich möchte ich Bild in instagram durch Absicht teilenAktien Absicht für instagram in android

I found this solution for images saved on sdcard aber ich möchte für Bild vor Ort gleich tun (Link)

Ich habe versucht, mit

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

Aber es funktioniert nicht .. Bitte helfen.

EDIT

Als ich oben Vorsatz beginnen, es meiner installierten instagram Anwendung öffnet und sofort beenden instagram und Toast Meldung kommt „nicht in der Lage Datei herunterladen“

Eigentlich spielt es keinen Link und Bild analysieren bzw. . Was sollte ein Problem sein?

+0

definieren * nicht * zu arbeiten. Irgendeine Fehlermeldung? – Raptor

+0

"Datei konnte nicht heruntergeladen werden". Nachricht kommt von Instagram App –

+0

Das gleiche Problem hier. Versuchen herauszufinden, ob das Bild existiert oder nicht. –

Antwort

2

Sie sollten lokalen Pfad verwenden

Zum Beispiel in Datei: "file: ///path/to/file/image.png".

Beachten Sie, dass es sehr wichtig ist, "Datei" in den Pfad aufzunehmen, ohne diesen Teil kann es auch den gleichen Toast zeigen.

+0

immer noch das gleiche Problem bei der Freigabe von Fotos. –

0

Zuerst müssen Sie die Datei von dieser URL herunterladen. Sie können diesen Code beziehen Bild von URL zum Download:

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

und für das Bild verwenden uri dann für sie auf instagram teilen

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