<强>前言强>
短信验证码获取并自动填写现在已经成为一个人性化应用的标配了,这篇文章将实现一个短信验证码获取并自动填写的演示。其实就是读取指定号码的短信并提取出验证码,然后赋值给EditText显示。
演示效果图:
<强>读取短信强>
Android系统在接受到一条短信的时候会发出一条行动为android.provider.Telephony.SMS_RECEIVED的有序广播,因此我们读取短信的验证码只需要监听这个广播然后提取出短信中的验证码即可,如:
/* * *由程龙>//注册广播 IntentFilter IntentFilter=new IntentFilter (SMSBroadcastReceiver.SMS_RECEIVED_ACTION);//设置优先级 intentFilter.setPriority (Integer.MAX_VALUE); registerReceiver (mSMSBroadcastReceiver intentFilter);
<>强取消注册强>
@Override 保护空白> 公共类MainActivity AppCompatActivity实现SMSBroadcastReceiver延伸。OnReceiveSMSListener { 私人SMSBroadcastReceiver mSMSBroadcastReceiver=new SMSBroadcastReceiver (); 私人EditText mEt_code; @Override 保护无效onCreate(包savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); EditText mEt_code=() findViewById (R.id.et_code); mSMSBroadcastReceiver.setOnReceiveSMSListener(这个);//注册广播 IntentFilter IntentFilter=new IntentFilter (SMSBroadcastReceiver.SMS_RECEIVED_ACTION);//设置优先级 intentFilter.setPriority (Integer.MAX_VALUE); registerReceiver (mSMSBroadcastReceiver intentFilter); } @Override 公共空间onReceived(字符串消息){ mEt_code.setText(消息+ " "); } @Override 保护无效onDestroy () { super.onDestroy (); unregisterReceiver (mSMSBroadcastReceiver); } }
这个演示的代码实现比较简单,就是监听广播,读取收到的短信,然后过滤筛选出我们要的验证码短信,再用正则表达式提取到验证码设置给EditText显示即可。大家下载或者自己编写这个演示并更改发送方短信号码运行,然后可以找个注册网址或是模拟验证码短信进行测试。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。