好吧,标题党了~
前言: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中增加申明,且注册权限
<receiver android:name="com.cplatform.surfdesktop.test.util.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"/>
测试过程中需要用到短信验证码时就可以实时获取了
相关推荐
在IT行业中,自动获取...总结来说,自动获取短信验证码并填充的技术流程涵盖了Android的广播接收器、数据解析、UI自动化控制等多个方面,需要综合运用多种技术手段,并且在实施过程中充分考虑用户隐私和系统兼容性。
本文实例讲解了Android自动提取短信验证码解决方案,分享给大家供大家参考,具体内容如下 主要功能及优点 1.收到验证码短信后,自动提取短信中的验证码填写到相应输入框 2.可指定一个号码,只读取与他有关短信,...
在IT行业中,自动获取短信验证码并填充以及倒计时是一项常见的功能,特别是在用户注册、登录、支付等场景中。这个功能极大地提升了用户体验,减少了手动输入验证码的繁琐步骤,同时也为应用的安全性提供了一定保障。...
本Demo项目“Android自动填写短信验证码”提供了一种自动化处理验证码的解决方案,简化了用户操作流程,提升了用户体验。 首先,我们来理解验证码自动填充的基本原理。Android系统提供了Intent服务,用于在应用之间...
在Android开发中,自动填充短信验证码以及语音播报短信是提高用户体验的重要功能。这些技术主要涉及到以下几个方面的知识点: 1. **Android SMS Retriever API**: Android提供了SMS Retriever API,允许应用安全...
本文将深入探讨如何在Android客户端实现自动获取验证码的技术细节。 首先,我们要明白自动获取验证码的核心原理是短信监听。Android系统提供了一个名为`BroadcastReceiver`的组件,我们可以创建一个自定义的`...
当系统收到短信时,会发出一个action名称为android.provider.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接收到的短信内容,使用名称“pdus”即可从Intent中获取短信内容。最好使用动态注册的方法,去注册...
这个压缩包文件“Android高级应用源码-android仿淘宝,自动获取短信验证码 demo.rar”提供了一个Android应用程序的示例,该程序模拟了淘宝应用中的一个重要功能:自动获取短信验证码。这个功能在许多移动应用中用于...
在Android开发中,实现“自动...综上所述,实现“自动提取短信验证码”涉及到Android的广播接收器、短信权限、正则表达式、UI交互等多个知识点。通过合理的代码设计和优化,可以在保证功能的同时,提供良好的用户体验。
在Android开发中,实现短信验证码自动填充是一项提升用户体验的重要功能。这一特性允许应用程序在接收到短信验证码后,自动将其填入到相应的输入框中,从而减少用户手动输入的步骤,提高验证过程的效率。以下是对这...
本资源“Android自动填充短信验证码.zip”包含了实现这一功能的相关代码,让我们来深入探讨一下这个功能的实现原理和关键知识点。 一、Android AutoFill框架 Android 8.0(API级别26)引入了AutoFill服务,这是一...
【标题解析】:“android仿淘宝,自动获取短信验证码 demo”这个标题表明这是一个关于Android平台的开发项目,旨在模仿淘宝应用中的一个特定功能:自动填充接收到的短信验证码。在淘宝等电商平台注册或验证用户身份...
在IT行业中,自动获取短信验证码是一项常见的功能,尤其在移动应用和网络安全中广泛使用。它旨在简化用户体验,提高流程效率,同时确保账户安全。本文将深入探讨这一技术的原理、实现方式以及相关知识点。 首先,...
本文将深入探讨如何在Android项目中实现短信验证码的自动填充功能,通过分析给出的源码,我们可以了解到这个过程的关键技术点。 首先,我们需要理解短信验证码的生命周期。通常,验证码是由服务器发送到用户的手机...
这个压缩包文件“安卓短信彩信相关相关-android仿淘宝自动获取短信验证码demo.zip”主要包含了一个安卓应用的示例代码,用于演示如何在Android平台上模仿淘宝应用,实现自动获取短信验证码的功能。在这个项目中,...
本文将详细介绍如何在Android应用中实现自动获取短信验证码并填充到输入框中的功能。 #### 二、所需权限 要在Android应用中实现自动获取短信验证码的功能,首先需要在AndroidManifest.xml文件中添加以下两个权限:...
该库可以自动申请短信权限,自动获取短信验证码,并将其输入到指定的EditText中。同时,该库还提供了多种配置选项,例如验证码长度、验证码类型、短信内容过滤、发送者号码过滤等,满足不同的开发需求。 二、使用 ...
该压缩包文件“android仿淘宝,自动获取短信验证码 demo.zip”是针对Android开发的一个高级示例,主要展示了如何在Android应用程序中实现类似淘宝的自动获取短信验证码的功能。这个功能在现代移动应用中非常常见,...
在Android开发中,文本框(EditText)的自动填充功能是一项重要的用户体验优化技术,尤其是在涉及到身份验证或注册场景时,如输入短信验证码。本项目“Android文本框自动填充短信验证码”旨在提供一个直接运行的示例...