android85 簡訊防火牆

來源:互聯網
上載者:User

標籤:

系統收到簡訊是有廣播的,廣播中包含了簡訊的號碼和內容  ###簡訊防火牆* 系統傳送簡訊廣播時,是怎麼把簡訊內容存入廣播的,我們就只能怎麼取出來* 如果簡訊過長,那麼發送時會拆分成多條簡訊發送,那麼簡訊廣播中就會包含多條簡訊* 4.0之後,廣播接收者所在進程如果從來沒啟動過,那麼廣播接收者不會生效* 4.0之後,如果系統自動關閉廣播接收者所在進程,在廣播中的action跟該廣播接收者的action匹配時,系統會啟動該廣播接收者所在的進程,但是如果是使用者手動關閉該進程,那麼該進程會進入凍結狀態,再也不會啟動了,直到使用者下一次手動啟動該進程###廣播的分類#####無序廣播* 所有與廣播中的action匹配的廣播接收者都可以收到這條廣播,並且是沒有先後順序,視為同時收到#####有序廣播* 所有與廣播中的action匹配的廣播接收者都可以收到這條廣播,但是是有先後順序的,按照廣播接收者的優先順序排序
package com.itheima.smslanjie;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsManager;import android.telephony.SmsMessage;public class SmsReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        //拿到簡訊的資訊        //簡訊內容封裝在intent中,廣播的資料是用Intent傳遞的        Bundle bundle = intent.getExtras();        //以pdus為鍵,取出一個object數組,數組中的每一個元素都是一條簡訊        Object[] objects = (Object[]) bundle.get("pdus");        //拿到廣播中的所有簡訊        for (Object object : objects) {            //通過pdu來構造簡訊,SmsMessage表示簡訊對象。            SmsMessage sms = SmsMessage.createFromPdu((byte[])object);            if(sms.getOriginatingAddress().equals("138438")){//通過地址攔截                //阻止其他廣播接收者收到這條廣播,則簡訊應用就收不到簡訊了,簡訊應用也是通過系統發送的廣播收到簡訊的,                abortBroadcast();//                SmsManager.getDefault().sendTextMessage(sms.getOriginatingAddress(), null, "你是個好人", null, null);                System.out.println(sms.getMessageBody());                System.out.println(sms.getOriginatingAddress());            }//            System.out.println(sms.getMessageBody());        }    }}/* 資訊清單檔:<receiver android:name="com.itheima.smslanjie.SmsReceiver"><intent-filter android:priority="1000">  防火牆優先順序高於簡訊應用則廣播接受者優先於簡訊應用接受簡訊廣播    <action android:name="android.provider.Telephony.SMS_RECEIVED"/>  收到Telephony.SMS_RECEIVED這個廣播後調用SmsReceiver的方法</intent-filter></receiver>添加許可權<uses-permission android:name="android.permission.RECEIVE_SMS"/>*/

 

android85 簡訊防火牆

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.