Android实现自动提取短信验证码功能

本文实例讲解了Android自动提取短信验证码解决方案,分享给大家供大家参考,具体内容如下

主要功能及优点
1.收到验证码短信后,自动提取短信中的验证码填写到相应输入框
2.可指定一个号码,只读取与他有关短信,避免提取来源错误
3.利用正则表达式,可匹配各种类型验证码

模块集成关键步骤 
   将auto_getcode_demo中src包里的SMSContentObserver类复制到你的项目src包中

在SMSContentObserver中:
   修改正则表达式内容来匹配自己想要获取的字符串

private String patternCoder = "\\d{4}";  //正则表达式

指定一个号码,只读取与他有关的新消息。

private boolean checkPhone(String phone) {
 // TODO Auto-generated method stub
 String c_phone = "10690032980066";
 if(c_phone.equals(phone) )
  return true;
 return false;
}

指定一关键字符串,用来确认短信内容是我们想要去提取的

private boolean checkString(String message){
 if(TextUtils.isEmpty(message))
  return false;
 Pattern p = Pattern.compile("FinalShares"); //这个关键字符串可以自定义
 Matcher matcher = p.matcher(message);
 if(matcher.find())
  return true;
 return false;
}

在MainActivity中:
  注册内容观察者,用来监听手机短信的变动

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 smsContentObserver = new SMSContentObserver(this, mHandler); // 创建1个对象
 registerContentObservers() ;         //注册内容观察者
}

private void registerContentObservers() {
 // ”表“内容观察者 ,通过测试我发现只能监听此Uri -----> content://sms
 // 监听不到其他的Uri 比如说 content://sms/outbox
 Uri smsUri = Uri.parse("content://sms");
 getContentResolver().registerContentObserver(smsUri, true,smsContentObserver);
}

创建一个handler来接收观察者监听传来的信息,当接收到指定号码短信时,自动获得相应验证码并填写到对应控件

private Handler mHandler = new Handler() { 

 public void handleMessage(Message msg) {
  switch (msg.what) {
   case MSG_OUTBOXCONTENT:
    String outbox = smsContentObserver.getstrContent();
    etSmsoutbox.setText(outbox);
    break;
   default:
    break;
  }
 }
};

在AndroidManifest中添加相应权限

<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>

环境相关
开发平台:Android

语言:    java

开发工具: eclipse

效果展示

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • android读取短信示例分享

    复制代码 代码如下: package com.homer.sms; import java.sql.Date;import java.text.SimpleDateFormat; import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteException;import android.net.Uri;import android.os.Bundle;import

  • Android实现短信验证码自动填写功能

    本实例为大家分享了Android实现短信验证码自动填写功能,供大家参考,具体内容如下 实现思路很简单: 1.在需要输入验证码的Activity代码注册监听短信的广播 2.拦截短信,获取其中的验证码 3.回写到EditText private SmsReciver smsReciver = new SmsReciver(); /** 收到短信Action **/ String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED

  • Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容 <uses-permissionandroid:name="android.permission.SEND_SMS"/> 第二,使用AlarmManager来实现一个倒计时的功能,当时间到时发送短   信.AlarmManager有两个相似的用法: 1.在指定时常

  • Android编程实现拦截短信并屏蔽系统Notification的方法

    本文实例讲述了Android编程实现拦截短信并屏蔽系统Notification的方法.分享给大家供大家参考,具体如下: 拦截短信有几个关键点: 1.android接收短信时是以广播的方式 2.程序只要在自己的Manifest.xml里加有"接收"SMS的权限 <uses-permission android:name="android.permission.RECEIVE_SMS"> </uses-permission> <uses-p

  • Android发送短信功能代码

    本文实例讲述了Android发送短信功能代码,是进行Android程序开发中非常常见的重要功能.分享给大家供大家参考之用.具体方法如下: // 发送短信 public void sendMsg(){ String content = edtSend.getText().toString(); SmsManager smsManager = SmsManager.getDefault(); List<String> divideContents = smsManager.divideMessag

  • android短信监听工具(示例代码)

    在学习本实例之前,读者请先了解一下android四大组件中的"广播接收者"的基本概念和使用. 由于是"监听程序",所以就不需要建立Activity.这样也算是一种"遮掩"吧.使用BroadcastReceiver,就能达到这"不可告人"的目的.呵呵.当然,使用服务来开发此类应用,更加合适.这里就不再深入讨论"服务"了.本实例仅供学习参考,请勿非法用途. 复制代码 代码如下: package cn.itcas

  • Android实现获取未接来电和未读短信数量的方法

    本文实例展示了Android实现获取未接来电和未读短信数量的方法,在Android程序开发中非常常见,是非常实用的功能,现分享给大家供大家参考.具体如下: 一.未读短信   首先注册Observer,当有新短信或彩信来的时候会调用 onChange方法,我们可以在onChange方法中去获取未读短信和彩信,然后做一些UI上的处理! 具体功能代码如下: private ContentObserver newMmsContentObserver = new ContentObserver(new H

  • Android短信接收监听、自动回复短信操作例子

    定义广播接收器的Action: 复制代码 代码如下: private static final String TAG ="SmsService";/*** 信息发送状态广播*/private static final String ACTION_SMS_SEND  = "com.SmsService.send";  /*** 信息接收状态广播*/private static final String ACTION_SMS_DELIVERY = "com.S

  • Android实现发送短信功能实例详解

    本文实例分析了Android实现发送短信功能的方法.分享给大家供大家参考,具体如下: 短信和打电话一样,都是android手机的基本功能,下面以实例说明android如何实现发送短信的功能. 程序如下所示: import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.app.PendingIntent; import android.cont

  • android中可以通过两种方式调用接口发送短信

    第一:调用系统短信接口直接发送短信:主要代码如下: 复制代码 代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List<String> divideContents = smsManager.divideMessage(content); for (String text : divideContents) { smsManager.sendTextMessage("150xxxxxxxx&qu

  • android短信拦截的实现代码

    短信拦截的实现主要是使用了广播接收者来实现. BroadcastReceiver  广播接收者   必须指定要接收的广播类型.必须明确的指定action 广播:事件.普通广播: 是异步的.会广播接收者同时接收,不能被中断sendBroadcast()有序广播: 是同步的.会根据广播接收的优先级进行接收,是可以中断   短信到来广播 sendOrderBroadcast()priority的范围是:-1000 ~ 1000如果有序广播明确的指定了广播接收者,他是无法被中断的. 代码实现如下: 1.

  • Android获取和读取短信验证码的实现方法

    现如今,验证码在Android的客户端还是非常普遍的.通过手机账号和验证码直接去注册应用账户的信息.很多应用都以这种方式来完成注册.简单的介绍一下吧. Android获取短信验证码还是比较简单的,通过Mob官网提供的ShareSDK,调用其中内部的方法,就可以获取到短信的验证码了.提供一下Mob的官网地址.http://www.mob.com/#/在官网上注册相关的信息之后,下载相关的jar包和.so文件就可以实现获取短信验证码了(2.0之前的版本都需要下载jar包和 .so文件,而现在的2.2

随机推荐