Android - 短信广播接收器

android

1个回答

写回答

Dameng99

2025-06-14 00:30

+ 关注

Android
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()方法中,我们可以获取到收到的短信内容,并进行相应的处理。以下是一个简单的短信广播接收器的示例代码:

Java

public 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()方法来处理收到的短信。根据实际需求,我们可以对短信内容进行解析、过滤或者响应等操作。例如,我们可以提取短信中的验证码,自动填充到输入框中。以下是一个处理收到的短信的示例代码:

Java

private 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) {

// 自动填充验证码到输入框的逻辑

}

通过使用短信广播接收器,我们可以方便地接收和处理手机收到的短信。在实际开发中,我们可以根据需求对短信内容进行解析、过滤或者响应等操作,以提高用户体验和开发效率。希望本文对你理解和使用短信广播接收器有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号