nullpoInterException当我调用smsmanager.sendtextmessage()方法时
执行此行时:
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
任何一个论点都是无效的
或
具有 null 值。
Either of the Argument is having null value
or
is having null value.