最近想给 app 添加自动获取短信验证码的功能,让注册流程更加友好,在网上搜索了一些资料,主要的实现方法有两种。
第一:实现广播 BroadCastReceiver 来监听收件箱,在需要监听的地方注册广播监听,然后再Activity 结束的地方unregist掉。
第二:利用 ContentObserver 来监听短信数据库,当有指定的新信息到来时调用相应的方法来实现信息内容的读取。以下仅给出第二种方法的实现代码(亲测可行哦!)。
- 修改 AndroidManifest.xml 获取短信接收和读取权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
- 新建一个Activity
package com.example.myapp;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.widget.EditText;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public<