注册帐号时,经常需要手机获取验证码,安卓如何通过手机自动获取短信验证码,下面看看小编给大家分享的一段代码,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了机器人实现手机自动获取短信验证码功能,供大家参考,具体内容如下
1、短信监听广播
2、读取短信内容
3、截取短信内容【可以车辆注册号截取】
4、填写至相应控件
PS:DevStore测试没有获取到验证码
源码片段
公共类主要活动扩展活动{
私有广播接收器短信接收器
私有中间过滤器过滤器2
私有处理程序处理者;
私有编辑文本et
私有字符串strContent
私有字符串patternCoder='(?- \\d)\\d{6}(?\ \ d)';
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
et=(EditText)findViewById(r . id。et);
handler=new Handler() {
公共void句柄消息(Android。OS。消息msg){
et。settext(字符串内容);
};
};
过滤器2=新意图过滤器();
过滤器2。addaction(‘安卓。提供商。电话。SMS _ RECEIVED’);
filter2.setPriority(整数MAX _ VALUE);
SMS接收器=新的广播接收器(){
@覆盖
公共接收时无效(上下文语境,意图意图){
Object[]objs=(Object[])intent。获取附加服务().get(" PDU ");
for (Object obj : objs) {
byte[]PDU=(byte[])obj;
短信短信=短信。createfrompdu(PDU);
//短信的内容
字符串消息=短信。getmessagebody();
Log.d('徽标','消息'消息);
//短息的手机号。 86开头?
string from=SMS。getoriginatingaddress();
Log.d('logo ',' from ' from);
Time Time=new Time();
时间。设置(短信。gettimestampmillis());
字符串时间2=时间。格式3339(真);
Log.d('logo ',from ' ' message ' ' time 2);
strContent=from " "消息;
处理程序。senemptymessage(1);
如果(!TextUtils.isEmpty(from)) {
字符串代码=模式代码(消息);
如果(!TextUtils.isEmpty(code)) {
strContent=代码
处理程序。senemptymessage(1);
}
}
}
}
};
registerReceiver(smsReceiver,过滤器2);
}
@覆盖
受保护的void onDestroy() {
超级棒。on destroy();
注销接收方(短信接收方);
}
/**
* 匹配短信中间的6个数字(验证码等)
*
* @ param模式内容
* @返回
*/
私有字符串模式代码(字符串模式内容){
if(textutils。isempty(模式内容)){
返回空
}
模式p=模式。编译(模式编码器);
制榫机匹配器=p . matcher(模式内容);
if (matcher.find()) {
返回火柴人。group();
}
返回空
}
}/前
文章末尾为大家在分享两个专题,供大家参考:
《PHP验证码大全》
《ASP.NET验证码大全》
以上就是机器人通过手机自动获取短信验证码的详细代码,希望对大家实现手机自动获取短信验证码有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。