在Android Kotlin中,可以通过使用BroadcastReceiver来检测和读取收到的短信。下面是一个基本的示例代码:
...
...
class SmsReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == "android.provider.Telephony.SMS_RECEIVED") {
val bundle = intent.extras
if (bundle != null) {
val pdus = bundle.get("pdus") as Array<*>
val messages = arrayOfNulls(pdus.size)
for (i in pdus.indices) {
messages[i] = SmsMessage.createFromPdu(pdus[i] as ByteArray)
}
if (messages.isNotEmpty()) {
val smsMessage = messages[0]
val sender = smsMessage?.originatingAddress
val message = smsMessage?.messageBody
// 在这里进行短信的处理操作
}
}
}
}
}
class MainActivity : AppCompatActivity() {
private val smsReceiver = SmsReceiver()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val intentFilter = IntentFilter()
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED")
registerReceiver(smsReceiver, intentFilter)
}
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(smsReceiver)
}
}
这样,当收到新的短信时,SmsReceiver的onReceive方法会被调用,并且你可以在其中进行短信的处理操作。