/* * 官网地站:http://www.mob.com * 技术支持QQ: 4006852216 * 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复) * * Copyright (c) 2014年 mob.com. All rights reserved. */ package cn.smssdk.gui; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.util.Log; import cn.smssdk.SMSSDK; /** 短信监听接收器,用于自动获取短信验证码,然后自动填写到验证码区域*/ public class SMSReceiver extends BroadcastReceiver { private static final String ACTION_SMS_RECEIVER = "android.provider.Telephony.SMS_RECEIVED"; private SMSSDK.VerifyCodeReadListener listener; public SMSReceiver(SMSSDK.VerifyCodeReadListener verifyCodeReadListener) { this.listener = verifyCodeReadListener; } /** * 不要使用AndroidManifest.xml配置的方式注册Receiver, * 请使用Context.registerReceiver注册监听器, 因为初始化的时候要传入监听器 */ public SMSReceiver() { String msg = "Please dynamically register an instance of this class with Context.registerReceiver." +"\r\nIf not, the SMSSDK.VerifyCodeReadListener will be null!"; Log.w("cn.smssdk.gui.SMSReceiver", msg); } @Override public void onReceive(Context context, Intent intent) { if(ACTION_SMS_RECEIVER.equals(intent.getAction())) { Bundle bundle = intent.getExtras(); if(bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage[] smsArr = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { smsArr[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); } for (SmsMessage sms: smsArr) { if(sms != null) { SMSSDK.readVerificationCode(sms, listener); } } }// END if(bundle != null) } } }