# SmsObserverForAndroid-master
**Repository Path**: fanenqian/SmsObserverForAndroid-master
## Basic Information
- **Project Name**: SmsObserverForAndroid-master
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-01-05
- **Last Updated**: 2020-12-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 项目介绍
### 介绍
* 一个用于拦截android实时短信的库,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的app项目
### 功能
* 用于监听当前接收到的短信信息
* 过滤接收到的短信,得到自己想要的内容
### 使用场景
* 可以用于自动填写短信验证码的app项目
# 使用方法
### 所需权限
```java
```
有些手机(miui8)需要在软件权限中打开 读取通知类信息权限 否则无法读取通知短信
### 初始化
```java
/***
* 构造器
* @param context
* @param callback 短信接收器
* @param smsFilter 短信过滤器
*/
SmsObserver smsObserver=new SmsObserver(this, new SmsResponseCallback() {
@Override
public void onCallbackSmsContent(String smsContent) {
//这里接收短信
}
}, new VerificationCodeSmsFilter("180"));
```
### 注册短信变化监听器
* 在注册监听器以后,短信观察者就已经启动短信变化监听,接下只要接收短信,对短信做处理就可以了
```java
/***
* 注册短信变化观察者
*
* @see [类、类#方法、类#成员]
*/
smsObserver.registerSMSObserver();
```
### 注销短信变化监听器
* 在不需要再使用短信接收功能的时候,请注销短信监听器,不然后续还是可以接收得到短信
```java
/***
* 注销短信变化观察者
*
* @see [类、类#方法、类#成员]
*/
smsObserver.unregisterSMSObserver();
```
### 短信过滤器
* 要接收到自己想要的短信内容只要实现自己的SmsFilter短信过滤器即可
```java
/**
* 短信验证码过滤器
*
/
public class VerificationCodeSmsFilter implements SmsFilter {
/**
* 需要过滤的发短信的人
*/
private String filterAddress;
public VerificationCodeSmsFilter(String filterAddress) {
this.filterAddress = filterAddress;
}
@Override
public String filter(String address, String smsContent) {
if (address.startsWith(filterAddress)) {
Pattern pattern = Pattern.compile("(\\d{4,8})");//匹配4-8位的数字
Matcher matcher = pattern.matcher(smsContent);
if (matcher.find()) {
return matcher.group(0);
}
}
return null;
}
}
```
# 关于作者fanenqian