Android app獲取簡訊驗證碼,並自動填充

2021-09-25 05:47:23 字數 1414 閱讀 1835

實現方式思路:

1、系統有乙個contentobserver,可以在onchange(boolean selfchange, uri uri)裡過濾處理簡訊

2、必須要呼叫getcontentresolver().registercontentobserver(uri, true, mobserver),註冊之後才可以監聽(contentobserver才會生效)

實現步驟:目前是在activity中實現

1、先知道系統簡訊url:uri uri = uri.parse("content://sms")

2、這裡可以繼承contentobserver,重新乙個smsobserver類處理簡訊

3、建立乙個內容觀察物件:smsobserver mobserver = new smsobserver(this, mhandler, msg_received_code);這裡只是用了hnader進行處理接收驗證碼,也可以使用eventbus等進行處理訊息傳遞

4、註冊getcontentresolver().registercontentobserver(uri, true, mobserver)

5、在opause()或ondestroy()中反註冊getcontentresolver().unregistercontentobserver(mobserver)

實現的關鍵原始碼:

1、activity

private handler mhandler = new handler() 

}};

mobserver = new smsobserver(this, mhandler, msg_received_code);

uri uri = uri.parse("content://sms");

getcontentresolver().registercontentobserver(uri, true, mobserver);

2、smsobserver類

public class smsobserver extends contentobserver 

@override

public void onchange(boolean selfchange, uri uri)

uri inboxuri = uri.parse("content://sms/inbox");

cursor c = mcontext.getcontentresolver().query(inboxuri, null, null, null, "date desc");

if (c != null) )");

matcher matcher = pattern.matcher(body);

if (matcher.find())

}c.close();}}

}

參考:

獲取簡訊內容

read the pdus out of an or a intent.param intent the intent to read from return an array of smsmessages for the pdus public static final smsmessage ge...

資料庫獲取 Android 簡訊

讀取簡訊需要的許可權 讀取資料庫簡訊方法 public static list getsmscode null,null,date desc 第二種,通過查詢條件,例如 date lasttime,過濾資料 uri.parse content sms new string,date new stri...

資料庫獲取 Android 簡訊

android name android.permission.read sms public static list getsmscode null,null,date desc 第二種,通過查詢條件,例如 date lasttime,過濾資料 if cursor null 返回所有的簡訊 ret...