Android實(shí)現(xiàn)自動(dòng)填寫(xiě)獲取驗(yàn)證碼功能
本文實(shí)例講解了Android自動(dòng)提取短信驗(yàn)證碼解決方案,分享給大家供大家參考,具體內(nèi)容如下
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS"></uses-permission>
package com.dongdongsongcan.app;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import com.su.dolphin.utils.LogUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SMSReceiver extends BroadcastReceiver
{
public interface ISMSListener {
public void onSmsReceive(String verifyCode);
}
private static ISMSListener mSMSListener;
public SMSReceiver(ISMSListener ismsListener) {
mSMSListener = ismsListener;
}
public static final String TAG = "ImiChatSMSReceiver";
//android.provider.Telephony.Sms.Intents
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent)
{
LogUtil.d(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
if (intent.getAction().equals(SMS_RECEIVED_ACTION))
{
SmsMessage[] messages = getMessagesFromIntent(intent);
for (SmsMessage message : messages)
{
// LogUtil.d(message.getOriginatingAddress() + " : " +
//
// message.getDisplayOriginatingAddress() + " : " +
//
// message.getDisplayMessageBody() + " : " +
//
// message.getTimestampMillis());
String msg = message.getDisplayMessageBody();
LogUtil.d("MSG: " + msg);
String verifyCode = null;
Pattern p = Pattern.compile("\\d{4}");
Matcher m = p.matcher(msg);
while (m.find()) {
verifyCode = m.group();
break;
}
LogUtil.d("verifyCode " + verifyCode);
if (mSMSListener != null) {
mSMSListener.onSmsReceive(verifyCode);
}
}
}
}
public final SmsMessage[] getMessagesFromIntent(Intent intent)
{
Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
byte[][] pduObjs = new byte[messages.length][];
for (int i = 0; i < messages.length; i++)
{
pduObjs[i] = (byte[]) messages[i];
}
byte[][] pdus = new byte[pduObjs.length][];
int pduCount = pdus.length;
SmsMessage[] msgs = new SmsMessage[pduCount];
for (int i = 0; i < pduCount; i++)
{
pdus[i] = pduObjs[i];
msgs[i] = SmsMessage.createFromPdu(pdus[i]);
}
return msgs;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- Android實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼
- Android開(kāi)發(fā)工程中集成mob短信驗(yàn)證碼功能的方法
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android實(shí)現(xiàn)短信驗(yàn)證碼獲取自動(dòng)填寫(xiě)功能(詳細(xì)版)
- Android開(kāi)發(fā)中通過(guò)手機(jī)號(hào)+短信驗(yàn)證碼登錄的實(shí)例代碼
- Android實(shí)現(xiàn)獲取短信驗(yàn)證碼并自動(dòng)填寫(xiě)功能
- Android 短信驗(yàn)證碼自動(dòng)填寫(xiě)
- Android利用CursorLoader實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)填寫(xiě)
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)填寫(xiě)
- Android短信驗(yàn)證碼自動(dòng)填寫(xiě)實(shí)現(xiàn)代碼
相關(guān)文章
使用Flutter開(kāi)發(fā)一個(gè)圖片UI組件的代碼示例
在移動(dòng)應(yīng)用開(kāi)發(fā)中,圖片展示是一個(gè)常見(jiàn)的需求,為了滿足不同場(chǎng)景的圖片展示需求,我們可以開(kāi)發(fā)一個(gè)靈活配置的圖片UI組件,本文將介紹如何使用Flutter開(kāi)發(fā)一個(gè)圖片UI組件,并提供了豐富的配置選項(xiàng),需要的朋友可以參考下2023-09-09
android實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Android CoordinatorLayout高級(jí)用法之自定義Behavior
這篇文章主要介紹了Android CoordinatorLayout高級(jí)用法之自定義Behavior,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Android編程之SurfaceView學(xué)習(xí)示例詳解
這篇文章主要介紹了Android編程之SurfaceView學(xué)習(xí)示例,結(jié)合實(shí)例分析了SurfaceView的功能、使用方法與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
Android接入ffmpeg庫(kù)及問(wèn)題解決方法
這篇文章主要介紹了Android接入ffmpeg庫(kù)的相關(guān)知識(shí),文中提到了交叉編譯ffmpeg+libx264+libfdk-aac的問(wèn)題及問(wèn)題解決方法,需要的朋友可以參考下2022-03-03
內(nèi)存泄露導(dǎo)致Android?中setVisibility()?失效原理
這篇文章主要介紹了內(nèi)存泄露導(dǎo)致Android?中setVisibility()?失效原理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-07-07
Android自定義UI手勢(shì)密碼改進(jìn)版源碼下載
這篇文章主要介紹了Android自定義UI手勢(shì)密碼改進(jìn)版,為大家提供了手勢(shì)密碼源碼下載,,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-10-10
基于Flutter實(shí)現(xiàn)圖片選擇和圖片上傳
Flutter?的圖片選擇插件很多,包括了官方的?image_picker,multi_image_picker(基于2.0出了?multi_image_picker2)等等。本文將利用這些插件實(shí)現(xiàn)圖片選擇和圖片上傳,需要的可以參考一下2022-03-03
Android中如何優(yōu)雅的處理重復(fù)點(diǎn)擊實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Android中如何優(yōu)雅的處理重復(fù)點(diǎn)擊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度
這篇文章主要為大家詳細(xì)介紹了Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度,即最多輸入5個(gè)漢字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

