
Android
Android - 短信广播接收器
在Android开发中,短信广播接收器是一个非常重要的组件,它能够接收并处理手机收到的短信。短信广播接收器可以用于多种场景,比如自动填充验证码、自动回复短信等。本文将介绍如何使用短信广播接收器,并提供一个案例代码供参考。1. 注册短信广播接收器在AndroidManifest.XML文件中注册短信广播接收器,以便系统能够将收到的短信发送给该接收器。在XML<receiver</p> Android:name=".SmsReceiver" Android:enabled="true" Android:exported="true"> <intent-filter> <action Android:name="Android.provider.Telephony.SMS_RECEIVED" /> </intent-filter></receiver>2. 创建短信广播接收器在项目中创建一个新的Java类,命名为SmsReceiver,继承自BroadcastReceiver。重写onReceive()方法,该方法会在接收到短信时被调用。在onReceive()方法中,我们可以获取到收到的短信内容,并进行相应的处理。以下是一个简单的短信广播接收器的示例代码:
Javapublic class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("Android.provider.Telephony.SMS_RECEIVED")) { Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus != null && pdus.length > 0) { SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) {</p> messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); } // 处理收到的短信 handleReceivedSms(context, messages); } } } } private void handleReceivedSms(Context context, SmsMessage[] messages) { // 处理收到的短信逻辑 }}3. 处理收到的短信在短信广播接收器中,我们可以通过handleReceivedSms()方法来处理收到的短信。根据实际需求,我们可以对短信内容进行解析、过滤或者响应等操作。例如,我们可以提取短信中的验证码,自动填充到输入框中。以下是一个处理收到的短信的示例代码:Javaprivate void handleReceivedSms(Context context, SmsMessage[] messages) { for (SmsMessage message : messages) { String body = message.getMessageBody(); // 获取短信内容 String sender = message.getDisplayOriginatingAddress(); // 获取发送短信的号码 // 根据短信内容和号码进行相应的处理 if (body.contAIns("验证码")) { // 提取验证码,并自动填充到输入框中 String code = extractVerificationCode(body); if (!TextUtils.isEmpty(code)) { // 自动填充验证码 fillVerificationCode(code); } } }}private String extractVerificationCode(String body) { // 根据短信内容提取验证码的逻辑 // 返回提取到的验证码}private void fillVerificationCode(String code) { // 自动填充验证码到输入框的逻辑}通过使用短信广播接收器,我们可以方便地接收和处理手机收到的短信。在实际开发中,我们可以根据需求对短信内容进行解析、过滤或者响应等操作,以提高用户体验和开发效率。希望本文对你理解和使用短信广播接收器有所帮助。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号