android短信验证码怎么利用contentobserve自动读取

android短信验证码怎么利用contentobserve自动读取,第1张

 android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便

public class SMSReceiver extends BroadcastReceiver{

private String verifyCode="";

public static final String TAG = "SMSReceiver";

public static final String SMS_RECEIVED_ACTION = "androidproviderTelephonySMS_RECEIVED";

@Override

public void onReceive(Context context, Intent intent){

if (intentgetAction()equals(SMS_RECEIVED_ACTION)){

SmsMessage[] messages = getMessagesFromIntent(intent);

for (SmsMessage message : messages){

Logi(TAG, messagegetOriginatingAddress() + " : " +

messagegetDisplayOriginatingAddress() + " : " +

messagegetDisplayMessageBody() + " : " +

messagegetTimestampMillis());

String smsContent=messagegetDisplayMessageBody();

Logi(TAG, smsContent);

writeFile(smsContent);//将短信内容写入SD卡

}

}

}

public final SmsMessage[] getMessagesFromIntent(Intent intent){

Object[] messages = (Object[]) intentgetSerializableExtra("pdus");

byte[][] pduObjs = new byte[messageslength][];

for (int i = 0; i < messageslength; i++)

{

pduObjs[i] = (byte[]) messages[i];

}

byte[][] pdus = new byte[pduObjslength][];

int pduCount = pduslength;

SmsMessage[] msgs = new SmsMessage[pduCount];

for (int i = 0; i < pduCount; i++) {

pdus[i] = pduObjs[i];

msgs[i] = SmsMessagecreateFromPdu(pdus[i]);

}

return msgs;

}

//将短信内容写到SD卡上的文件里,便于将文件pull到PC,这样可方便其它如>

无法获得。手机验证码为私人信息,不得转告他人,否则容易发生财产丢失等后果,所以不能获得对方手机验证码。全自动区分计算机和人类的图灵测试又称验证码,是一种区分用户是机器或人类的公共全自动程序。

首先确定页面有哪些元素,并且明确功能、测试点等,点击手机号获取验证码是用来做什么的。(明确功能)验证码是手机下发的验证码,还是验证码等 ,首先明确和细化需求

在明确功能后先冒烟测试或通过性测试,测试功能正常使用后,再进行非通过性测试。

先进行通过性测试

输入正确的手机号码,点击获取验证码,查看手机是否收到短信。收到短信后输入验证码,若为登录功能,还应检查是否进行页面跳转,是否正确进行登录,是否可 *** 作登录后应 *** 作的项,若功能为注册,则应查看是否注册成功,去数据库检查数据的正确性,若测试成功后进行非通过性测试

正确的手机号验证的规则为:13,14,15,17,18为开头的11位数字

为空测试,

21 不输入手机号,不输入验证码 直接点击登录或注册等功能点 ,提示不能为空

22 不输入手机号,只输入验证码 直接点击登录或注册等功能点 ,提示不能为空

22 输入手机号码,不输入验证码 直接点击登录或注册等功能点  ,提示不能为空

输错手机号码错误测试

31 输入汉字、小数,字符串,空格及组合在手机号码文本框中,提示手机号码不正确

32 输入10位,12位数字进行登录,提示手机号码不正确,提示手机号码不正确

32 输入11位非手机号码进行获取验证码,提示手机号码不正确

验证码

41 输入错误的验证码,提示请输入正确的验证码

42 输入多一位或少一位的验证码

43 明确验证码的失效时长后,在时长之后输入输入码,提示该验证码已失效,请重新获取验证码

其他按功能来补充

我们首先识别最简单的一种验证码,即图形验证码。这种验证码最早出现,现在也很常见,一般由4位字母或者数字组成。例如,中国知网的注册页面有类似的验证码,页面如下所示:

表单中最后一项就是图形验证码,我们必须完全正确输入图中的字符才可以完成注册。

更多有关验证码的知识,可以参考这些文章:

Python3爬虫进阶:识别图形验证码

Python3爬虫进阶:识别极验滑动验证码

Python3爬虫进阶:识别点触点选验证码

Python3爬虫进阶:识别微博宫格验证码

·本节目标以知网的验证码为例,讲解利用OCR技术识别图形验证码的方法。

·准备工作识别图形验证码需要库tesserocr,以mac安装为例:在mac下,我们首先使用Homebrew安装ImageMagick和tesseract库:    brew install imagemagickbrew install tesseract 接下来再安装tesserocr即可:pip3 install tesserocr pillow这样我们就完成了            tesserocr的安装。

·获取验证码为了便于实验,我们先将验证码的保存到本地。打开开发者工具,找到验证码元素。验证码元素是一张,它的ser属    性是CheckCodeaspk。所以我们直接打开如下链接就可以看到一个验证码,右键保存即可,将其命名为codejpg:

这样我们就得到一张验证码,以供测试识别使用。

:《Python教程》

识别测试

接下来新建一个项目,将验证码放到项目根目录下,用tesserocr库识别该验证码,代码如下所示:

这里我们新建了一个Image对戏那个,调用了tesserocr的image_to_text( )方法。传入该Image对象即可完成识别,实现过程非常简单,结果如下:

我们可以看到,识别的结果和实际结果有偏差,这是因为验证码内的多余线条干扰了的识别。

另外,tesserocr还有一个更加简单的方法,这个方法可以直接将文件转为字符串,代码如下:

不过这种方法的识别效果不如上一种的好。

验证码处理

对于上面的,我们可以看到其实并没有完全识别正确,所以我们需要对图像作进一步的处理,如灰度转换、二值化等 *** 作。

我们可以利用Image对象的convert( )方法参数传入L,即可将转化为灰度图像,代码如下:

传入1即可将进行二值化处理,如下所示:

我们还可以指定二值化的阈值。上面的方法采用的是默认阈值127。不过我们不能直接转化原图,要将原图先转化为灰度图像,然后再指定二值化阈值,代码如下:

在这里,变量threshold代表二值化阈值,阈值设置为160,之后我们来看看我们的结果:

我们可以看到现在的二维码就比较方便我们进行识别了;那么对于一些有干扰的,我们做一些灰度和二值化处理,这会提高识别的正确率。

以上就是关于android短信验证码怎么利用contentobserve自动读取全部的内容,包括:android短信验证码怎么利用contentobserve自动读取、选择短信验证码接收平台,了解哪些内容、如何获取对方手机验证码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9280353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存