使用场景
在现今许多APP中需要进行一些输入短信验证码的操作,一个比较好的用户体验是应用检测到目标短信后自动提取验证码到相应的控件框中,不需要用户手动输入验证码。
这个功能是如何实现的呢?
根据目前掌握的知识,我做了一个Demo实现了一下。
所用知识
- 广播机制
- 多媒体-接收短信功能
- Notification
实现思路
1、在主界面中写一个内部类继承BroadCastReceiver类,在onReceiver()方法中写具体逻辑。
2、利用内部类注册监听系统短息 android.provider.Telephony.SMS_RECEIVED
3、为应用添加读取短息的权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/>
代码实现
package com.example.yubinwang.smstest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.ut