android - SMSmanager.getDefault() - 弃用 - 替换什么?

标签 android kotlin smsmanager

最近开始学习 kotlin 编程语言的 android 系统编程。在编写用于从应用程序本身发送 SMS 的简单应用程序时,我遇到了 SmsManager.getDefault() 现在已弃用的问题,因此无法按照视频类(class)中的说明发送 SMS。问题 - 现在如何从应用程序本身发送 SMS?我阅读了官方文档,但无法理解解决方法。

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)
        }
    }
}

最佳答案

作者 official documentation你可以像这样得到它

val smsManager = context.getSystemService(SmsManager::class.java)

关于android - SMSmanager.getDefault() - 弃用 - 替换什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70275782/

相关文章:

android - 使用 BindingAdapter 时数据绑定(bind)器无法识别 lambda 中的类型化参数

android - BroadcastReceiver Intent.ACTION_PACKAGE_ADDED/REMOVED Android Oreo

android - 如何记录所有已发送的短信以及包裹名称?

android - 与服务一起使用时使用 SMS 管理器时出现问题

java - 通过 Android 的 SmsManager 发送的 SMS 消息会出现在普通的消息应用程序中吗?

自定义 View 中的 Android 动画矩形

android - 在 DatePickerDialog 中使用 DatePicker setMaxDate() 时出现 NullPointerException

android - Kotlin:无法返回派生类型

Android 使用 <shape> 设置 View 背景,solid 不起作用

Android 文字覆盖图片