android 监听短信并获取验证码

本文介绍了如何在Android应用中实现自动获取短信验证码功能,主要使用ContentObserver监听短信数据库。需要在AndroidManifest.xml中添加权限,并提供具体的实现代码。遇到CursorWindow初始化问题时,可能是projection设置不正确,应确保正确设置以获取所需数据。短信数据库字段包括:address(发送者号码)、person(联系人编号)、read(读取状态)和body(短信内容)。
摘要由CSDN通过智能技术生成

最近想给 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<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值