android 讀取簡訊內容

2021-07-27 09:26:46 字數 2236 閱讀 1212

訪問簡訊內容需要配置的許可權:

="android.permission.receive_sms"/>

="android.permission.read_sms"/>

--heart-result--:

第一步:繼承broadcastreceiver,並重寫onreceive()方法。

public class incomingsmsreceiver extends broadcastreceiver }

第二步:訂閱感興趣的廣播intent,訂閱方法有兩種:

第一種:使用**進行訂閱

intentfilter filter = new intentfilter("android.provider.telephony.sms_received");

incomingsmsreceiver receiver = new incomingsmsreceiver();

registerreceiver(receiver, filter);

方式一:通過廣播監聽簡訊訊息

(注意:這種方式只對新收到的短訊息有效,執行**,並不會讀取收件箱中已讀或未讀的訊息,只有當收到新來的短訊息時,才會執行onchange方法)

缺點:通過設定priority的數值,其實有時是不管用的,現在在一些定製的系統或是有安全軟體的情況下,往往短訊息都被擷取到,並被乾掉。

方式二:通過簡訊資料庫獲取簡訊內容

新起乙個執行緒進行讀取簡訊

number:106901407187   body:您提交了重置應用rkwatch的使用者密碼,驗證碼:808220,請妥善保管,並及時提交重置密碼。【rkwatch】  time:1455801191000

substring(int1,int2)

取原字串中從左往右第int1到int2個字元組成的字串

protocol:協議0 sms_rpoto簡訊,1 mms_proto彩信

content://sms/               所有簡訊

content://sms/inbox        收件箱

content://sms/sent        已傳送

content://sms/draft        草稿

content://sms/outbox        發件箱

content://sms/failed        傳送失敗

content://sms/queued        待傳送列表

觀察者模式實現簡訊內容讀取:  

privatesmsobserver smsobserver;

smsobserver=newsmsobserver(resetpwd.this,mhandler);  

getcontentresolver().registercontentobserver(sms_inbox,true,smsobserver);  

class

smsobserver

extends

contentobserver   

@override

publicvoidonchange(booleanselfchange)    }

public

void

getsmsfromphone() ;//"_id", "address", "person",, "date", "type  

string where = " date > "

+ (system.currenttimemillis() - 60*1000);  

cursor cur = cr.query(sms_inbox, projection, where,null, "date desc");  

//查詢引數      條件          where  group by order by

if(null== cur)  

return;  

if(cur.movetonext())    }

獲取簡訊內容

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傳送簡訊時 簡訊內容超長處理

一條簡訊只可容納70個中文,所以當簡訊長度超過70個中文字元時程式就要特殊處理了。通常有兩種方式 一 通過sendtextmessage 方法逐條依次傳送拆分後的簡訊,這種方式有個缺點是使用者會分條收到簡訊。if message.length 70 else 二 使用sendmultiparttex...

PHP擷取發動簡訊內容的方法

如下所示 str tmp dadmin utils gbkstrsplit 簡訊內容 700 內容過長返回的是乙個擷取內容後的陣列 700指的是擷取的長度 total count str tmp num 1 foreach str tmp as str num sign strtoupper md5...