How to send message on WhatsApp in Android using Kotlin

Whatsapp is the one of most popular messaging App. Many android applications need the functionality to share some messages directly from their app to WhatsApp. For example, if a user wants to share the app or share a message from the app then this functionality comes in use. Either user can send a text or a predefined text can also be sent through this. This article demonstrates how an android application can send messages on WhatsApp. Whatsapp must be installed on the user’s device.

In this article, we will try to create an android app that sends message on WhatsApp using Kotlin.

Note: To view how to do this in Java, please refer How to send message on WhatsApp in Android using Java.

Approach

Step 1: Modify activity_main.xml file
Open the activity_main.xml file and add the layout code. activity_main.xml contains a Linear Layout which contains a EditText to input the message and a Button to submit the message.



activity_main.xml

filter_none

edit
close

play_arrow

link
brightness_4
code

<LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MainActivity"
      android:orientation="vertical">
  
  <!--EditText to take message input from user-->
  <EditText
      android:id="@+id/message"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_margin="16dp"
      android:hint="Enter you message here"
      android:lines="8"
      android:inputType="textMultiLine"
      android:gravity="left|top"
      />
  
  <!--Button to send message on Whatsapp-->
  <Button
      android:id="@+id/submit"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"
      android:text="Submit"
      android:background="@color/colorPrimary"
      android:textColor="@android:color/white"/>
</LinearLayout>

chevron_right


Step 2: Working with MainActivity.kt file

  • Take the reference of EditText and Button in Kotlin file. References are taken using the ids with the help of findViewById() method.

    Taking reference of EditText

    // Referencing the Edit Text
    val messageEditText = findViewById<EditText>(R.id.message)

    Similarly taking reference of button

    // Referencing the button
    val submit = findViewById<Button>(R.id.submit)

  • Write a function to send message to WhatsApp. Create an intent with ACTION_SEND and specify the whatsapp package name to this so that it opens directly. com.whatsapp is the package name for official WhatsApp application.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    fun sendMessage(message:String){
      
             // Creating intent with action send
             val intent = Intent(Intent.ACTION_SEND)
      
             // Setting Intent type
             intent.type = "text/plain"
      
             // Setting whatsapp package name
             intent.setPackage("com.whatsapp")
      
             // Give your message here
             intent.putExtra(Intent.EXTRA_TEXT, message)
      
             // Checking whether whatsapp is installed or not
             if (intent.resolveActivity(packageManager) == null) {
                 Toast.makeText(this
                                "Please install whatsapp first."
                                Toast.LENGTH_SHORT).show()
                 return
             }
      
             // Starting Whatsapp
             startActivity(intent)
         }

    chevron_right

    
    

  • Set the click listener using setOnClickListener on the button to send the message. Get the text entered by the user and call the function to send message on whatsapp.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Setting on click listener
    submit.setOnClickListener {
        val message = messageEditText.text.toString()
     
    // Calling the function
        sendMessage(message);
    }

    chevron_right

    
    

Below is the complete MainActivity.kt file

MainActivity.kt

filter_none

edit
close

play_arrow

link
brightness_4
code

package com.gfg
  
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Referencing the Edit Text
        val messageEditText = findViewById<EditText>(R.id.message)
  
        // Referencing the button
        val submit = findViewById<Button>(R.id.submit)
  
        // Setting on click listener
        submit.setOnClickListener {
            val message = messageEditText.text.toString()
  
        // Calling the function
        sendMessage(message);
        }
    }
  
    fun sendMessage(message: String) {
  
        // Creating intent with action send
        val intent = Intent(Intent.ACTION_SEND)
  
        // Setting Intent type
        intent.type = "text/plain"
  
        // Setting whatsapp package name
        intent.setPackage("com.whatsapp")
  
        // Give your message here
        intent.putExtra(Intent.EXTRA_TEXT, message)
  
        // Checking whether whatsapp is installed or not
        if (intent.resolveActivity(packageManager) == null) {
            Toast.makeText(this
                           "Please install whatsapp first."
                           Toast.LENGTH_SHORT).show()
            return
        }
  
        // Starting Whatsapp
        startActivity(intent)
    }
}

chevron_right


Output




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.