成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android的SMSpush怎么使用

這篇文章主要介紹“Android的SMS push怎么使用”,在日常操作中,相信很多人在Android的SMS push怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android的SMS push怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站制作、成都網(wǎng)站建設(shè),小程序定制開發(fā),網(wǎng)頁設(shè)計(jì)制作,移動網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè)幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。

短信(SMS)Push 和 Ip push是比較常見的兩種push方式。  

本篇主要簡單說說Sms push。

Sms push的原理:  

sms  push是通過發(fā)送二進(jìn)制短信到移動終端,來達(dá)到通知終端的目的。客戶端攔截這類短信,分析短信PDU的數(shù)據(jù),然后采取相應(yīng)的操作。push短信是通過 Wap push來承載的。其內(nèi)容包括頭部和數(shù)據(jù)兩部分,頭部中應(yīng)該含有目的端口和原端口號(可類比IP報(bào)文)。

由于發(fā)送短信需要運(yùn)營商的支持,比如移動的郵件推送網(wǎng)關(guān)(GEGW:GPRS Email Gateway),依賴性比較強(qiáng)。

Android客戶端攔截短信處理:

客戶端靜態(tài)注冊一個廣播接收器,即使應(yīng)用不在運(yùn)行,廣播接收器也能攔截短信。

<receiver android:name=".service.receiver.MyBroadcastReceiver">            <intent-filter android:priority="1000">                <action android:name="android.intent.action.DATA_SMS_RECEIVED" />                <data android:scheme="sms" android:host="localhost" android:port="16001" />            </intent-filter>

這樣當(dāng)push短信下發(fā)時(監(jiān)聽到端口16001的數(shù)據(jù)),系統(tǒng)發(fā)起Intent激活廣播接收器,廣播接受器在其事件回調(diào)函數(shù)中進(jìn)行處理

@Override     public void onReceive(Context context, Intent intent) {         String action = intent.getAction();         if (TextUtils.equals(action, "android.intent.action.DATA_SMS_RECEIVED")) {             handleDataSmsReceived(context, intent);         } }

在處理函數(shù)handleDataSmsReceived中,獲取pdu數(shù)據(jù)并解析,了解服務(wù)器的數(shù)據(jù)發(fā)生何種變化,客戶端可以進(jìn)行相應(yīng)處理。

簡易實(shí)現(xiàn)代碼如下:

private void handleDataSmsReceived(Context context, Intent intent) {         Uri uri = intent.getData();         int port = uri.getPort();//接受端口 16001         SmsMessage[] msgs = getMessagesFromIntent(intent);         String senderNumber = msgs[0].getOriginatingAddress();//短信發(fā)送方的電話號碼         int type =  parse(msgs)//解析 pdu的業(yè)務(wù)部分?jǐn)?shù)據(jù),根據(jù)與服務(wù)器交互的協(xié)議去解         switch(type){              //不同的情況分類處理         } }

獲取的短信的方法

private static 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;     }

到此,關(guān)于“Android的SMS push怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

本文標(biāo)題:Android的SMSpush怎么使用
地址分享:http://jinyejixie.com/article26/ppsijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、App開發(fā)、用戶體驗(yàn)移動網(wǎng)站建設(shè)、軟件開發(fā)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
剑河县| 莱州市| 寻乌县| 上高县| 筠连县| 苗栗县| 诏安县| 株洲县| 梅河口市| 罗田县| 阳江市| 成武县| 宁德市| 山阴县| 大姚县| 桐城市| 石泉县| 凤城市| 曲靖市| 旅游| 绥化市| 大渡口区| 微山县| 双流县| 清涧县| 科技| 铅山县| 聊城市| 平度市| 垦利县| 京山县| 砀山县| 尚志市| 葫芦岛市| 福建省| 和顺县| 合作市| 定陶县| 崇仁县| 高平市| 柳州市|