Android SMS - How to Send Sms in Android Studio using Kotlin.
Last updated Dec 16, 2021 In this android example, we will see how to send message from app in Android Studio by using Kotlin Language.
Implementation:
Create a new Project in android studio.
Go to File > New > New Project > Empty Activity > Next > Enter Name > Select Language Kotlin > Finish |
Go to activity_message.xml file and add the following 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"
android:gravity="center"
android:padding="20dp"
android:orientation="vertical"
tools:context=".MessageActivity">
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter mobile number" />
<EditText
android:id="@+id/etMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:hint="Enter your message" />
<Button
android:id="@+id/sendSMS"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Send Message" />
</LinearLayout>
|
Add Send SMS permission in AndroidManifest.xml file
Open MessageActivity.kt file and add the following code below setContentView().
val btn = findViewById(R.id.sendSMS)
val phoneNo = findViewById(R.id.etPhone)
val message = findViewById(R.id.etMessage)
val permissionRequest = 101
fun myMessage() {
val myNumber: String = phoneNo.text.toString().trim()
val myMsg: String = message.text.toString().trim()
if (myNumber == "" || myMsg == "") {
Toast.makeText(this, "Field cannot be empty", Toast.LENGTH_SHORT).show()
} else {
if (TextUtils.isDigitsOnly(myNumber)) {
val smsManager: SmsManager = SmsManager.getDefault()
smsManager.sendTextMessage("+91 " + myNumber, null, myMsg, null, null)
Toast.makeText(this, "Message Sent", Toast.LENGTH_SHORT).show()
phoneNo.text.clear()
message.text.clear()
} else {
Toast.makeText(this, "Please enter the correct number", Toast.LENGTH_SHORT)
.show()
}
}
}
btn.setOnClickListener {
val permissionCheck =
ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
myMessage()
} else {
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.SEND_SMS),
permissionRequest
)
}
}
|
Run the app on emulator or real device, you will get the output as following in video .
Complete Source Code of Send SMS Example :
activity_message.xml file
<?xml version="1.0" encoding="utf-8"?>
<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"
android:gravity="center"
android:padding="20dp"
android:orientation="vertical"
tools:context=".MessageActivity">
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter mobile number" />
<EditText
android:id="@+id/etMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:hint="Enter your message" />
<Button
android:id="@+id/sendSMS"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Send Message" />
</LinearLayout>
|
MessageActivity.kt file
import android.Manifest
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.telephony.SmsManager
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
class MessageActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_message)
val btn = findViewById(R.id.sendSMS)
val phoneNo = findViewById(R.id.etPhone)
val message = findViewById(R.id.etMessage)
val permissionRequest = 101
fun myMessage() {
val myNumber: String = phoneNo.text.toString().trim()
val myMsg: String = message.text.toString().trim()
if (myNumber == "" || myMsg == "") {
Toast.makeText(this, "Field cannot be empty", Toast.LENGTH_SHORT).show()
} else {
if (TextUtils.isDigitsOnly(myNumber)) {
val smsManager: SmsManager = SmsManager.getDefault()
smsManager.sendTextMessage("+91 " + myNumber, null, myMsg, null, null)
Toast.makeText(this, "Message Sent", Toast.LENGTH_SHORT).show()
phoneNo.text.clear()
message.text.clear()
} else {
Toast.makeText(this, "Please enter the correct number", Toast.LENGTH_SHORT)
.show()
}
}
}
btn.setOnClickListener {
val permissionCheck =
ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
myMessage()
} else {
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.SEND_SMS),
permissionRequest
)
}
}
}
}
|
Conclusion: In this article we have covered how to send message from app in Android Studio by using Kotlin Language.
<?xml version="1.0" encoding="utf-8"?>
<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"
android:gravity="center"
android:padding="20dp"
android:orientation="vertical"
tools:context=".MessageActivity">
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter mobile number" />
<EditText
android:id="@+id/etMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:hint="Enter your message" />
<Button
android:id="@+id/sendSMS"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Send Message" />
</LinearLayout>
MessageActivity.kt file
import android.Manifest
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.telephony.SmsManager
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
class MessageActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_message)
val btn = findViewById(R.id.sendSMS)
val phoneNo = findViewById(R.id.etPhone)
val message = findViewById(R.id.etMessage)
val permissionRequest = 101
fun myMessage() {
val myNumber: String = phoneNo.text.toString().trim()
val myMsg: String = message.text.toString().trim()
if (myNumber == "" || myMsg == "") {
Toast.makeText(this, "Field cannot be empty", Toast.LENGTH_SHORT).show()
} else {
if (TextUtils.isDigitsOnly(myNumber)) {
val smsManager: SmsManager = SmsManager.getDefault()
smsManager.sendTextMessage("+91 " + myNumber, null, myMsg, null, null)
Toast.makeText(this, "Message Sent", Toast.LENGTH_SHORT).show()
phoneNo.text.clear()
message.text.clear()
} else {
Toast.makeText(this, "Please enter the correct number", Toast.LENGTH_SHORT)
.show()
}
}
}
btn.setOnClickListener {
val permissionCheck =
ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
myMessage()
} else {
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.SEND_SMS),
permissionRequest
)
}
}
}
}
|
Conclusion: In this article we have covered how to send message from app in Android Studio by using Kotlin Language.
-->