Share Image to WhatsApp with Caption from your Android App


Send Image with Caption Android Tutorial.png
Send Image with Caption Android Tutorial.png

We have seen how to share Text Message to WhatsApp Application from your App, similarly, we can also send Image contents with text caption to WhatsApp using Intents.

You need a URI variable that holds the image reference from your application or location on External or Internal storage and adds the following lines to the Intent Object.

intent.putExtra(Intent.EXTRA_STREAM,uri);
intent.setType("image/jpeg");

Let's create an Android Application with an Activity screen containing an EditText to hold the caption message and Button to call the send Intent Object.

Layout file

xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.code2care.example.whatsappintegrationexample.MainActivity"

    tools:ignore="HardcodedText" >     android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="21dp"
    android:onClick="sendMessae"
    android:text="Send Image to WhatsApp" />

    android:id="@+id/imageToBeShared"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="21dp"
    android:src="@drawable/mona" />

    android:id="@+id/caption"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/imageToBeShared"
    android:layout_marginTop="64dp"
    android:background="#FFFFFFEF"
    android:ems="10"
    android:hint="Image Caption message text!!"
android:padding="10dp" />

Activity Java file :

package com.code2care.example.whatsappintegrationexample;

import java.io.FileNotFoundException;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {

	private EditText message;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//Caption for the image!
		message = (EditText) findViewById(R.id.caption);

	}

	public void sendMessae(View v) throws FileNotFoundException {

		String whatsAppMessage = message.getText().toString();

		//You can read the image from external drove too
		Uri uri = Uri.parse("android.resource://com.code2care.example.whatsappintegrationexample/drawable/mona");
		
		
		
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_SEND);
		intent.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
		intent.setType("text/plain");
		intent.putExtra(Intent.EXTRA_STREAM,uri);
		intent.setType("image/jpeg");
		intent.setPackage("com.whatsapp");
		startActivity(intent);

	}

}

Result :

Now when you run this App and Add a text to Caption Box and click "Send to WhatsApp" button, WhatsApp app will pop up and ask to Select a Contact, when you select one, you see the image with Caption text added to it.

Send Image with Caption Android Tutorial.png
Send Image with Caption Android Tutorial.png





Recent Posts:
Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.