【发布时间】:2021-05-14 09:41:33
【问题描述】:
我正在制作 SMS Manager 应用程序。 这是我的代码。
接收方代码:
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent) {
val id = intent.getIntExtra("id", 0)
if (resultCode == Activity.RESULT_OK) {
Log.d("SMS", "Success to sent SMS")
} else {
Log.e("SMS", "Failed to send SMS")
}
}
}
发送短信方式:
private fun sendMessage(phone: String, message: String) {
try {
Log.d("SMS", "Send SMS")
val intent = Intent(SENT)
val sentIntent = PendingIntent.getBroadcast(activity, 0, intent, PendingIntent.FLAG_ONE_SHOT)
smsManager.sendTextMessage(phone, null, message, sentIntent, null)
} catch (ex: Exception) {
Log.e("Error", "error", ex)
}
}
当我向正确的号码发送消息时,接收者可以收到“成功”事件。很好!
但是当我向“123123123”等随机数发送消息时,接收方也会收到“成功”事件。这很糟糕!
所以我检查了我的手机,但默认消息应用程序中出现了失败的消息。
所以我的问题是:
为什么在我的代码的 sendIntent 中广播 success event?
我该如何解决这个问题?
请任何人帮助我。
谢谢。
附言。 我已经看过以下网址。但是还是没有答案。
【问题讨论】:
标签: android kotlin broadcastreceiver android-pendingintent android-sms