Android allows to send SMS messages directly from an application.
Application must have permission to send SMS messages. So, we need to request the SEND_SMS
permission in the manifest file.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<uses-permission android:name="android.permission.SEND_SMS" />
<application>
...
</application>
</manifest>
Using the method ContextCompat.checkSelfPermission()
we check if required permission was granted. If not, then we request permission by calling the method ActivityCompat.requestPermissions()
.
SmsManager
manages SMS operations. We can use the getDefault()
static method to get an instance of SmsManager
. SMS message can be sent by using sendTextMessage()
method.
package com.example.app
import android.Manifest
import android.content.pm.PackageManager
import android.os.Bundle
import android.telephony.SmsManager
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
class MainActivity : AppCompatActivity()
{
private val permission: String = Manifest.permission.SEND_SMS
private val requestCode: Int = 1
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (ContextCompat.checkSelfPermission(this, permission)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(this, arrayOf(permission), requestCode)
} else {
sendSms()
}
}
private fun sendSms()
{
val smsManager = SmsManager.getDefault()
val phoneNumber = "154XXXXXXXX"
val message = "Hello"
smsManager.sendTextMessage(phoneNumber, null, message, null, null)
}
}
Leave a Comment
Cancel reply