android短信验证码登录,Android注册登录实时自动获取短信验证码
android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码。
主要就是实时获取短信信息。
android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便,分享一篇文章大家可以查看一下,点击。
public class SMSReceiver extends BroadcastReceiver{
private String verifyCode="";
public static final String TAG = "SMSReceiver";
public 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)){
SmsMessage[] messages = getMessagesFromIntent(intent);
for (SmsMessage message : messages){
Log.i(TAG, message.getOriginatingAddress() + " : " +
message.getDisplayOriginatingAddress() + " : " +
message.getDisplayMessageBody() + " : " +
message.getTimestampMillis());
String smsContent=message.getDisplayMessageBody();
Log.i(TAG, smsContent);
writeFile(smsContent);//将短信内容写入SD卡
}
}
}
public final SmsMessage[] getMessagesFromIntent(Intent intent){
Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
byte[][] pduObjs = new byte[messages.length][];
for (int i = 0; i < messages.length; i++)
{
pduObjs[i] = (byte[]) messages[i];
}
byte[][] pdus = new byte[pduObjs.length][];
int pduCount = pdus.length;
SmsMessage[] msgs = new SmsMessage[pduCount];
for (int i = 0; i < pduCount; i++) {
pdus[i] = pduObjs[i];
msgs[i] = SmsMessage.createFromPdu(pdus[i]);
}
return msgs;
}
//将短信内容写到SD卡上的文件里,便于将文件pull到PC,这样可方便其它如WWW/WAP平台的自动化
@SuppressLint("SdCardPath")
public void writeFile(String str){
String filePath="/mnt/sdcard/verifyCode.txt";
byte [] bytes = str.getBytes();
try{
File file=new File(filePath);
file.createNewFile();
FileOutputStream fos=new FileOutputStream(file);
fos.write(bytes);
fos.close();
}catch(IOException e){
e.printStackTrace();
}
}
如此当有短信收到时就可以将短信内容写到SD卡中的文件里
在另一个java类中写个读取文件内容的方法,并在写测试用例过程中,将得到的String按验证码的具体位置截取即可。
public String read(String str) throws IOException{
File file=new File(str);
FileInputStream fis=new FileInputStream(file);
StringBuffer sb=new StringBuffer();
BufferedInputStream bis=new BufferedInputStream(fis);
BufferedReader read = new BufferedReader (new InputStreamReader(bis));
int c=0;
while ((c=read.read())!=-1) {
sb.append((char) c);
}
read.close();
bis.close();
fis.close();
Log.i(TAG, sb.toString());
String verify=sb.toString();
return verify;
}
最后需要在manifest中增加申明,且注册权限
测试过程中需要用到短信验证码时就可以实时获取了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
android短信验证码登录,Android注册登录实时自动获取短信验证码相关推荐
- autojs自动获取短信验证码
AutoJS 是一种基于 JavaScript 的自动化脚本语言,可以用于在 Android 设备上自动化操作. 如果你想使用 AutoJS 自动获取短信验证码,你可以使用 Android 的短信 A ...
- Android短信验证(手机号注册,绑定手机号获取验证码)实例
今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册 ...
- springboot+springsecurity+阿里云短信服务验证实现注册登录
使用springboot+security+Aliyun短信服务实现注册登录 为了实现个人博客部分的登录注册,我采用了阿里云短信服务发送验证码,后端比对验证码的方式完成注册,现在功能还不完全,以后这个 ...
- android 自动获取短信验证码
很多项目中都会用到,自动获取验证码填到输入框,这样用户体验比较好,废话不多说,现在实现 用的是ContentObserver这个类,帮助我们来监听短信数据库发生的变化 package com.s ...
- android 自动获取短信,安卓app怎样获取短信验证码自动输入
这个你要自己写吗? 我建议你直接调用短信平台的接口不就可以了吗? 短信发送 //接口地址 String url = "http://183.203.28.5:9000/HttpSmsMt&q ...
- 短信验证(手机号注册,绑定手机号获取验证码)
今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮 ...
- IOS自动获取短信验证码
小编这里有个自己的学习交流群681+503+716(验证编号:大鲨) * 1.自定义监听类* /** * 短信**,用于自动填充验证码 */ public class SMSContentObserv ...
- uni-app注册自动获取短信信息
uni-app实现app发送短信和读取短信 1.发送短信 uni-app没有对应API的接口,如果想实现发送短信的功能可以借助HTML5+ API的方式,使用发送短信接口,直接跳转到手机发送短信页面, ...
- Python自动获取Redi缓存验证码
最近做UI自动化测试,登录是需要进行短信验证码验证,和开发聊了聊思路,就开始着手实施 打开cmd 安装redis库 pip install redis 安装完成后,开始写代码,因为是测试环境,Redi ...
- python短信验证码登录_玩转python之获取短信验证码
对于初学者,如何利用第三方python开发包发送短信验证码,下面是具体的实现和记录过程! 环境:虚拟机上centos7平台,python3.7版本: 第三方短信平台:榛子云短信(http://smso ...
最新文章
- textlive在安装完winedt的配置问题
- GaussianBlur函数
- spring-声明式事务管理
- java图形化界面设置焦点_如何在更新窗口时防止Java图形程序窃取焦点?
- 图标截取——背景偏移量技术
- c#提交事务的两种方法
- html流星雨代码_HTML制作流星雨特效
- 第五周课程总结与报告
- thinkphp5---join联合查询
- 元气骑士机器人的成就皮肤_元气骑士:5把特殊“红武”,想要机器人的皮肤,用它就对了!...
- 使用ExtendSim进行医疗仿真
- 5号字对应的数字字号_字号对照表
- 用手机打开word图表位置很乱_干货 | 论文格式调半天?Word攻略帮你统统都搞定...
- 基于达索系统3DE平台实现企业数字化转型的场景应用
- 功能模块图、业务流程图、处理流程图、ER图,数据库表图(概念模型和物理模型)画法...
- 数据分析师前景如何,需要学习什么技能?
- 深入HotSpot虚拟机源码探究synchronized底层实现原理【万字总结synchronized】
- golang switch灵活写法
- 【2022.1.3】手脱压缩壳练习(含练习exe)
- (转) Windows如何区分鼠标双击和两次单击
热门文章
- 独家深挖!F1赛车协会“刹车表现”是如何进行数据分析的?
- win7命令行打开计算机,Win7怎么打开cmd命令提示符_Win7打开命令提示符教程-192路由网...
- 2016 新学++ , 回顾过去展望未来
- 游标CURSOR的基本用法
- IBM 架构师为何以及如何成为了架构师
- 【win10】win10开机黑屏时间长或只有鼠标解决办法,亲测可用
- 按字母排列的中国城市名称大全
- 富文本编辑器ueditor——找不到ueditor.all.js以及ueditor.all.min.js文件
- html id命名规范,关于Html class id 命名规范
- 电瓶升级问题:在本节最后一个electric_car.py版本中,给Battery类添加一个名为upgrade_battery()的方法。这个方法检查电瓶容量,如果它不是85,就将它设置为85。