如何接收和发送短信(Kotlin Android Studio)

问题描述 投票:0回答:1

我使用 Kotlin Android Studio

想象一下这个场景。

我有一个应用程序,根据用户的情况,我希望他们能够在不访问互联网的情况下通过使用短信来访问他们的信息。

为此,应用程序必须能够访问接收到的短信的内容并对其进行分析(从特定号码接收短信并分析消息的文本)

应用程序还需要能够通过访问用户的短信并等待响应来向特定号码发送定义的消息。

我在 YouTube 上观看了各种视频,还在各个网站上阅读了有关如何

接收和发送短信的信息,但是它们都不起作用

我希望你给我一个接收和发送短信的示例代码

android kotlin android-studio sms smsmanager
1个回答
0
投票
首先您需要请求一些权限,将其放入您的

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" />
您可以直接在片段中使用此代码来接收和发送短信:

//This code to check if permissions are granted (used in fragment) than request them if not if (activity?.checkSelfPermission(android.Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED || activity?.checkSelfPermission(android.Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED || activity?.checkSelfPermission(android.Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED ) { activity?.requestPermissions( arrayOf(android.Manifest.permission.RECEIVE_SMS, android.Manifest.permission.SEND_SMS, android.Manifest.permission.READ_SMS), PackageManager.PERMISSION_GRANTED ) } //And this code to wait for and recive SMS val br = object : BroadcastReceiver() { override fun onReceive(p0: Context?, p1: Intent?) { for (sms in Telephony.Sms.Intents.getMessagesFromIntent( p1 )) { val smsSender = sms.originatingAddress val smsMessageBody = sms.displayMessageBody if (smsSender == "the_number_that_you_expect_the_SMS_to_come_FROM") { binding.textView.text = smsMessageBody break } } } } //register this broadcast receiver here registerReceiver( requireContext(), br, IntentFilter("android.provider.Telephony.SMS_RECEIVED"), RECEIVER_EXPORTED ) //This function for sending SMS fun sendSms(phoneNumber: String, message: String) { val smsManager = SmsManager.getDefault() smsManager.sendTextMessage(phoneNumber, null, message, null, null) }
    
© www.soinside.com 2019 - 2024. All rights reserved.