Try it, it worked for me. I will use it to exchange information about my product. I get the product details, such as name, image, description from the server and display in the application, and then transfer it to instagram.
Get the URL of the image from the 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);
}