nullpoInterException当我调用smsmanager.sendtextmessage()方法时

发布于 2025-01-26 21:01:05 字数 1479 浏览 2 评论 0原文

执行此行时:

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

我会得到此例外:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.telephony.SmsManager.sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent)' on a null object reference

但是,当我称之为另一行的行时,它可以正常工作时,

val smsManager= SmsManager.getDefault()

我怀疑这一定与上下文或我注入的方式有关。

这是完整的类:

class PhoneStateListenerClass @Inject constructor(
@ApplicationContext private val context: Context,): PhoneStateListener() {

override fun onCallStateChanged(state: Int, incomingNumber: String) {
    if(state==TelephonyManager.CALL_STATE_RINGING){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                val smsManager = context.getSystemService(SmsManager::class.java)
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)
            }
            else{
                val smsManager= SmsManager.getDefault()
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)
            }
}
}
}
}

更新

即使我执行这些行:

 val smsManager = context.getSystemService(SmsManager::class.java)
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)

我有相同的错误...

When this line is executed:

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

I am getting this exception:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.telephony.SmsManager.sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent)' on a null object reference

However when I call this other line which is the decreped version it works fine

val smsManager= SmsManager.getDefault()

I suspect it must be something to do with the context or the way I'm injecting it.

This is the complete class:

class PhoneStateListenerClass @Inject constructor(
@ApplicationContext private val context: Context,): PhoneStateListener() {

override fun onCallStateChanged(state: Int, incomingNumber: String) {
    if(state==TelephonyManager.CALL_STATE_RINGING){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                val smsManager = context.getSystemService(SmsManager::class.java)
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)
            }
            else{
                val smsManager= SmsManager.getDefault()
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)
            }
}
}
}
}

UPDATE

Even if i execute these lines:

 val smsManager = context.getSystemService(SmsManager::class.java)
                smsManager.sendTextMessage(incomingNumber,null,phone.message,null,null)

I have the same error...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终弃我 2025-02-02 21:01:05

任何一个论点都是无效的

incomingnumber

phone.message

具有 null 值。

Either of the Argument is having null value

incomingNumber

or

phone.message

is having null value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文