¿Cómo enviar SMS en Android usando Kotlin?

SMS Manager es una clase en Android que se utiliza para enviar SMS a un contacto específico desde la aplicación de Android. Podemos enviar mensajes de texto, mensajes de datos y mensajes multimedia utilizando esta clase. Hay diferentes métodos que se proporcionan para enviar diferentes tipos de mensajes. En este artículo, veremos cómo implementar SMS Manager en Android usando Kotlin. A continuación se muestra un video de muestra para tener una idea de lo que vamos a hacer en este artículo.

Nota : si está buscando usar el administrador de SMS en la aplicación de Android usando JAVA. Consulta el siguiente artículo:   Enviar SMS en Android usando Java

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Se agregan comentarios dentro del código para comprender el código con más detalle.

XML

<?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:orientation="vertical"
    tools:context=".MainActivity">
 
    <!--on below line we are displaying a simple text view-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginStart="10dp"
        android:layout_marginTop="30dp"
        android:layout_marginEnd="10dp"
        android:padding="10dp"
        android:text="SMS Manager App"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="20sp" />
 
    <!--on below line we are creating a
        simple edit text for phone number-->
    <EditText
        android:id="@+id/idEdtPhone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:hint="Enter phone number"
        android:inputType="phone" />
 
    <!--on below line we are creating a
         message edit text for message-->
    <EditText
        android:id="@+id/idEdtMessage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:hint="Enter Message" />
 
    <!--on below line we are creating
        a button for sending message-->
    <Button
        android:id="@+id/idBtnSendMessage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="10dp"
        android:padding="5dp"
        android:text="Send Message"
        android:textAllCaps="false" />
 
</LinearLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

package com.gtappdevelopers.kotlingfgproject
 
import android.os.Bundle
import android.telephony.SmsManager
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity() {
 
    // on below line we are creating variable
    // for edit text phone and message and button
    lateinit var phoneEdt: EditText
    lateinit var messageEdt: EditText
    lateinit var sendMsgBtn: Button
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
         
        // initializing variables of phone edt,
        // message edt and send message btn.
        phoneEdt = findViewById(R.id.idEdtPhone)
        messageEdt = findViewById(R.id.idEdtMessage)
        sendMsgBtn = findViewById(R.id.idBtnSendMessage)
         
        // adding on click listener for send message button.
        sendMsgBtn.setOnClickListener {
             
            // on below line we are creating two
            // variables for phone and message
            val phoneNumber = phoneEdt.text.toString()
            val message = messageEdt.text.toString()
            
            // on the below line we are creating a try and catch block
            try {
               
                // on below line we are initializing sms manager.
                val smsManager: SmsManager = SmsManager.getDefault()
                 
                // on below line we are sending text message.
                smsManager.sendTextMessage(phoneNumber, null, message, null, null)
                 
                // on below line we are displaying a toast message for message send,
                Toast.makeText(applicationContext, "Message Sent", Toast.LENGTH_LONG).show()
                 
            } catch (e: Exception) {
               
                // on catch block we are displaying toast message for error.
                Toast.makeText(applicationContext, "Please enter all the data.."+e.message.toString(), Toast.LENGTH_LONG)
                    .show()
            }
        }
    }
}

Paso 4: Agregar permiso para enviar SMS en AndroidManifest.xml

Navegue hasta manifiesto > AndroidManifest.xml y agregue los siguientes permisos en él. 

XML

<!--on below line we are adding sms permissions-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<dist:module dist:instant="true" />

Ahora ejecute su aplicación para ver el resultado. 

Producción: 

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *