今天博主帶給小伙伴們一個(gè)小功能,就是利用廣播接收器實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼,話不多說(shuō),我們先看看如何去實(shí)現(xiàn)這個(gè)小功能。

首先我們需要新建一個(gè)名為SMSBroadcastReceiver的廣播接收器,代碼如下:
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static MessageListener mMessageListener;
public SMSBroadcastReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
if (intent.getAction().equals(SMS_RECEIVED_ACTION)) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for(Object pdu:pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte [])pdu);
String sender = smsMessage.getDisplayOriginatingAddress();
//短信內(nèi)容
String content = smsMessage.getDisplayMessageBody();
long date = smsMessage.getTimestampMillis();
Date tiemDate = new Date(date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = simpleDateFormat.format(tiemDate);
//過(guò)濾不需要讀取的短信的發(fā)送號(hào)碼,博主這里用的是關(guān)鍵詞過(guò)濾,小伙伴們也可以用電話號(hào)去過(guò)濾
if (content.contains("***")&&content.contains("****")
&&content.contains("***")) {
//從短信內(nèi)容中獲取驗(yàn)證碼
String code=getCode(content,6);
//回調(diào)數(shù)據(jù)
mMessageListener.onReceived(code);
abortBroadcast();
}
}
}
}
//回調(diào)接口
public interface MessageListener {
public void onReceived(String message);
}
public void setOnReceivedMessageListener(MessageListener messageListener) {
this.mMessageListener = messageListener;
}
public static String getCode(String body, int YZMLENGTH) {
// 首先([a-zA-Z0-9]{YZMLENGTH})是得到一個(gè)連續(xù)的YZMLENGTH位數(shù)字字母組合
// (?<![a-zA-Z0-9])負(fù)向斷言([0-9]{YZMLENGTH})前面不能有數(shù)字
// (?![a-zA-Z0-9])斷言([0-9]{YZMLENGTH})后面不能有數(shù)字出現(xiàn)
// 獲得數(shù)字字母組合
// Pattern p = Pattern .compile("(?<![0-9])([a-zA-Z0-9]{" + YZMLENGTH + "})(?![a-zA-Z0-9])");
// 獲得純數(shù)字
Pattern p = Pattern.compile("(?<![0-9])([0-9]{" + YZMLENGTH+ "})(?![0-9])");
Matcher m = p.matcher(body);
if (m.find()) {
System.out.println(m.group());
return m.group(0);
}
return null;
}
}
文章題目:Android利用廣播接收器實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://chinadenli.net/article28/dpgocp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、軟件開(kāi)發(fā)、網(wǎng)站排名、App開(kāi)發(fā)、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容