发送和接收短信的问题(Kotlin Android)

问题描述 投票:0回答:1

登录活动.kt:

if (checkSelfPermission(android.Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED
        || checkSelfPermission(android.Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
        || checkSelfPermission(android.Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED
    ) {
        requestPermissions(
            arrayOf(android.Manifest.permission.RECEIVE_SMS,
                android.Manifest.permission.SEND_SMS,
                android.Manifest.permission.READ_SMS), PackageManager.PERMISSION_GRANTED
        )
    }

signInBtn.setOnClickListener {

fun sendSms(phoneNumber: String, message: String) {
    val smsManager = SmsManager.getDefault()
    smsManager.sendTextMessage(phoneNumber, null, message, null, null)
   }
}

sendSms("50004000151398","OK")

主要问题是这个警告:

getDefault() : SmsManager! is deprecated

我已经测试了我读过的一些答案:

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

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

它们都不起作用;使用所有这些解决方案运行应用程序后,应用程序崩溃(应用程序停止)

错误:

java.lang.SecurityException: Sending SMS message: uid 10185 does not have android.permission.SEND_SMS.

我在Manifest.xml中添加了权限:

<uses-feature
    android:name="android.hardware.telephony"
    android:required="true" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS"/>

解决办法是什么?

android kotlin android-studio sms smsmanager
1个回答
0
投票

根据文档仅添加 android.permission.SEND_SMS 是不够的 显现出来,因为它的防护等级是危险的。

您必须请求此许可 运行时

© www.soinside.com 2019 - 2024. All rights reserved.