How can i post an image and a text to instagram? no problem if i must open the instagram app, or if i do via api or other. the problem is that i can't find how to: they have the iphone hook only, and the api is incomprensible. someone have did that, or have the know? thanks.
3 Answers
Try this it is worked for me. I will use it for share my product details. i will get details of product like name,image,description from the server and display in app and then share it to instagram.
Get image url from server.
URL url = ConvertToUrl(imgURL);
Bitmap imagebitmap = null;
try {
imagebitmap = BitmapFactory.decodeStream(url.openConnection()
.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Post image and text on instagram.
// post on instagram
Intent shareIntent = new Intent(
android.content.Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM,
getImageUri(HomeActivity.this, result));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, sharename);
shareIntent.putExtra(
Intent.EXTRA_TEXT,
"Check this out, what do you think?"
+ System.getProperty("line.separator")
+ sharedescription);
shareIntent.setPackage("com.instagram.android");
startActivity(shareIntent);
Convert Uri String to URL
private URL ConvertToUrl(String urlStr) {
try {
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(),
url.getHost(), url.getPort(), url.getPath(),
url.getQuery(), url.getRef());
url = uri.toURL();
return url;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Convert Bitmap to Uri
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(
inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}

- 403
- 2
- 7
- 21

- 2,687
- 1
- 15
- 14
-
1This code works for image, i am not able to send text with image. – AmeeJoshi Nov 18 '15 at 10:14
-
this code is working fine with image only ...unable to sent text – Vivek Pratap Singh Aug 02 '16 at 06:27
I doubt the Instagram developers will ever release iPhone like hooks for android as Intents already serve this purpose.
If you want to share an image from your app use an intent like this:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/jpeg");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Path/To/Image.jpg"));
startActivity(Intent.createChooser(i, "Share Image"));
Note that this will show a dialoge allowing the user to pick which photo sharing app to launch.
-
This is the recommended approach that you should follow. Else, you will need to use Instagram API, to roll out your own custom share stuff. – Kumar Bibek Jul 19 '12 at 16:48
-
-
If the user has Instagram is installed then when the user clicks the share button Instagram will show up in that list. If you want to share via a mobile website you'll have to use the Instagram APIs – slayton Jul 31 '12 at 05:10
-
3using above method i dont get the image to be uploaded on instagram...Plz help – Richa Jul 31 '12 at 08:27
This works for me.... but it assumes the package name of com.instagram.android, which may change without notice I suppose.
private void shareToInstagram(Uri imageUri){
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/*");
i.putExtra(Intent.EXTRA_STREAM, imageUri);
i.setPackage("com.instagram.android");
activity.startActivity(i);
}
You could always check to see if the com.instagram.android package is installed using getPackageManager() ... and if not, then don't set the package name in the intent and let the app chooser help the user pick the app to share the image with.

- 326
- 3
- 8