How to send a photo to Instagram using my Android app?

put this code in your button click listener it will redirect you into app and make sure your device have installed Instagram app.

String type = "image/*";
imageview.buildDrawingCache();
Bitmap bmap = imageview.getDrawingCache();
Uri bmpUri = getLocalBitmapUri(bmap);
Intent share = new Intent(Intent.ACTION_SEND);
if (Utils.isPackageExisted(this,"com.instagram.android")) {
 share.setPackage("com.instagram.android");
}
share.setType(type);
share.putExtra(Intent.EXTRA_STREAM, bmpUri);
startActivity(Intent.createChooser(share, "Share to"));

I solved my problem.

I add this line after the camera.takePicture.

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));

This line does a "refresh" and after the phone recognizes the news photos saved on your phone.

And I made some changes on my method

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("image/*");                 

final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
    MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.TITLE, MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");

if (c1.moveToFirst() ) {
    Log.i("Test", "last picture (" + c1.getString(1) + ") taken on: " + new Date(c1.getLong(2)));
}

Log.i("Image path", "file://"+Environment.getExternalStorageDirectory()+ "/Tubagram/"  + c1.getString(1) + ".png");

shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+Environment.getExternalStorageDirectory()+ "/Tubagram/" + c1.getString(1)+".png"));
shareIntent.setPackage("com.instagram.android");

c1.close();

startActivity(shareIntent);

And with this another method I verify if the Instagram is installed on the phone

private boolean verifyInstagram(){
    boolean installed = false;

    try {
        ApplicationInfo info = getPackageManager().getApplicationInfo("com.instagram.android", 0);
        installed = true;
    } catch (NameNotFoundException e) {
        installed = false;
    }
        return installed;
    }