Android中实现短信验证码自动填入

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47724807 Android中实现短信验证码自动填入由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47724807

Android中实现短信验证码自动填入

由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。

实现步骤:

1.写一个SmsBroadcastReceiver,在AndroidMainifirst.xml文件中注册:

/** * 配置广播接收者: * <receiver android:name=".SMSBroadcastReceiver"> *  
<intent-filter android:priority="1000">表示: * 设置此广播接收者的级别为最高 */  
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>  
</intent-filter> 
</receiver> 


类代码:

public class SmsBroadcastReceiver extends BroadcastReceiver{

private  MessageListener mMessageListener;
    public SMSBroadcastReceiver() {
        super();
    }
@Override
public void onReceive(Context context, Intent intent) {
Object [] pdus= (Object[]) intent.getExtras().get("pdus");
        for(Object pdu:pdus){
           SmsMessage smsMessage=SmsMessage.createFromPdu((byte [])pdu);
           String sender=smsMessage.getDisplayOriginatingAddress();
           String content=smsMessage.getMessageBody();
           long date=smsMessage.getTimestampMillis();
           Date timeDate=new Date(date);
           SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           String time=simpleDateFormat.format(timeDate);
           System.out.println("短信来自:"+sender+"短信内容:"+content+"短信时间:"+time);
           mMessageListener.OnReceived(content);
           //如果短信来自10690157263152,不再往下传递,一般此号码可以作为短信平台的号码。
           if("10690157263152".equals(sender)){
               System.out.println(" abort ");
               abortBroadcast();
           }
        }


}


// 回调接口
    public interface MessageListener {
        public void OnReceived(String message);
    }


    public void setOnReceivedMessageListener(MessageListener messageListener) {
        this.mMessageListener=messageListener;
    }
}


在Activity使用的方法:


mSMSBroadcastReceiver=new SMSBroadcastReceiver();  
mSMSBroadcastReceiver.setOnReceivedMessageListener(new MessageListener() {  
public void OnReceived(String message) {  
mTextView.setText(message); }  
});

总结:这三步搞定,很方便,让你的应用从此告别手动输入验证码的时代。

相关文章
|
Android开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
18天前
|
API 索引
Android-短信验证码
Android-短信验证码
|
11月前
|
Android开发
Android 短信验证码倒计时60s实现步骤
Android 短信验证码倒计时60s实现步骤
185 0
|
缓存 JSON Java
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
372 1
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
|
Android开发 容器
Android实现面包屑效果,支持Fragment联动
Android实现面包屑效果,支持Fragment联动
|
Android开发
Android实现连线题效果
Android实现连线题效果
|
移动开发 JavaScript Android开发
通过howler.js实现在Android下的微信浏览器自动播放音频
通过howler.js实现在Android下的微信浏览器自动播放音频
462 0
通过howler.js实现在Android下的微信浏览器自动播放音频
|
数据库 Android开发
android 多级下拉菜单实现教程 greendao使用
android 多级下拉菜单实现教程 greendao使用
197 0
android 多级下拉菜单实现教程 greendao使用
|
存储 API Android开发
深入剖析Android四大组件(四)——Messenger实现Android IPC
深入剖析Android四大组件(四)——Messenger实现Android IPC
125 2
|
监控 前端开发 Java
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
396 0