Recientemente comencé a estudiar programación para el sistema android en el lenguaje de programación kotlin. Al escribir una aplicación simple para enviar SMS desde la propia aplicación, me encontré con el problema de que SmsManager.getDefault() ahora está DESACTIVADO y, en consecuencia, no es posible enviar SMS como se indica en las lecciones en video. Pregunta: ¿cómo es posible ahora enviar SMS desde la propia aplicación? Leí la documentación oficial, pero no pude entender el método de solución.
package com.example.mysendsms import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.telephony.SmsManager import com.example.mysendsms.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBinding val sms = SmsManager.getDefault() override fun onCreate(savedInstanceState: Bundle?) { binding = ActivityMainBinding.inflate(layoutInflater) super.onCreate(savedInstanceState) setContentView(binding.root) binding.send.setOnClickListener { val textMsg = binding.message.toString().trim() val numberMsg = binding.number.toString().trim() sendSMS(textMsg,numberMsg) } } private fun sendSMS(text: String, number: String) { sms.sendTextMessage(number,null,text,null,null) } } }Por documentación oficial puedes conseguirlo así
val smsManager = context.getSystemService(SmsManager::class.java)El método SmsManager getDefault() solo está en desuso a partir de la API 31 , por lo que aún debe usar los niveles de API getDefault() por debajo del 31.
val smsManager: SmsManager = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { context.getSystemService(SmsManager::class.java) } else { SmsManager.getDefault() }