Android自动获取短信验证码功能

   2025-02-13 4740
核心提示:在 Android 中实现自动获取短信验证码的功能可以分为以下几个步骤:添加权限:在 AndroidManifest.xml 文件中添加读取短信的权限

在 Android 中实现自动获取短信验证码的功能可以分为以下几个步骤:

添加权限:在 AndroidManifest.xml 文件中添加读取短信的权限:
<uses-permission android:name="android.permission.READ_SMS"/>
创建 BroadcastReceiver:创建一个继承自 BroadcastReceiver 的类,用于接收短信,并提取其中的验证码。在 onReceive 方法中实现短信的处理逻辑,例如提取验证码、更新 UI 等操作。
public class SMSReceiver extends BroadcastReceiver {    private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";    @Override    public void onReceive(Context context, Intent intent) {        if (intent.getAction().equals(SMS_RECEIVED_ACTION)) {            Bundle bundle = intent.getExtras();            if (bundle != null) {                Object[] pdusObj = (Object[]) bundle.get("pdus");                if (pdusObj != null) {                    for (Object pdus : pdusObj) {                        SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus);                        String messageBody = smsMessage.getMessageBody();                        // 提取短信中的验证码                        String verificationCode = extractVerificationCode(messageBody);                        // 处理获取到的验证码                        // ...                    }                }            }        }    }    private String extractVerificationCode(String messageBody) {        // 根据短信的内容提取验证码        // 例如通过正则表达式匹配验证码的格式        // ...    }}
注册 BroadcastReceiver:在需要接收短信验证码的页面或者 Application 类中注册 BroadcastReceiver。
// 在需要接收短信的页面或者 Application 类中注册 BroadcastReceiverSMSReceiver smsReceiver = new SMSReceiver();IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");registerReceiver(smsReceiver, intentFilter);

注意:在不需要获取短信验证码的时候,记得要取消注册 BroadcastReceiver。

// 取消注册 BroadcastReceiverunregisterReceiver(smsReceiver);

这样,当有新的短信到来时,系统会发送一个广播到注册的 BroadcastReceiver 中,其中包含了短信的内容,我们可以在 BroadcastReceiver 中提取出短信中的验证码,并进行相应的处理。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言