登录活动.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"/>
解决办法是什么?