最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android短信攔截的實(shí)現(xiàn)代碼

 更新時間:2013年09月18日 14:36:01   作者:  
這篇文章介紹了android短信攔截的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下

短信攔截的實(shí)現(xiàn)主要是使用了廣播接收者來實(shí)現(xiàn)。

BroadcastReceiver  廣播接收者   必須指定要接收的廣播類型。必須明確的指定action

 
廣播:事件。
普通廣播: 是異步的。會廣播接收者同時接收,不能被中斷
sendBroadcast()
有序廣播: 是同步的。會根據(jù)廣播接收的優(yōu)先級進(jìn)行接收,是可以中斷   短信到來廣播
sendOrderBroadcast()
priority的范圍是:-1000 ~ 1000
如果有序廣播明確的指定了廣播接收者,他是無法被中斷的。

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

1、MainActivity

復(fù)制代碼 代碼如下:

package com.njupt.t4; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.IntentFilter; 
import android.view.Menu; 

public class MainActivity extends Activity { 

    private SmsReceiver receiver = new SmsReceiver(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        IntentFilter filter = new IntentFilter(); 
        filter.setPriority(997); 
        filter.addAction("android.provider.Telephony.SMS_RECEIVED"); 
        registerReceiver(receiver,filter); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        // Inflate the menu; this adds items to the action bar if it is present. 
        getMenuInflater().inflate(R.menu.main, menu); 
        return true; 
    } 

    @Override 
    protected void onDestroy() { 
        super.onDestroy(); 

        unregisterReceiver(receiver); 
    } 



2、SmsReceiver
復(fù)制代碼 代碼如下:

package com.njupt.t4; 

import java.text.SimpleDateFormat; 
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) { 

        System.out.println("章澤天是我老婆,老婆我成功了...."); 
        Bundle bundle = intent.getExtras(); 
        Object[] objects = (Object[]) bundle.get("pdus"); 
        for(Object obj : objects){ 
            SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])obj); 
            String body = smsMessage.getDisplayMessageBody(); 
            String address = smsMessage.getDisplayOriginatingAddress(); 
            long date = smsMessage.getTimestampMillis(); 

            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
            String dateStr = format.format(date); 

            System.out.println(address +" 于  " + dateStr + "給你發(fā)了以下內(nèi)容: " + body); 

            if(address.equals("5558")){ 
                abortBroadcast(); 
                SmsManager smsManager = SmsManager.getDefault(); 
                smsManager.sendTextMessage("5556",null,address +" 于  " + dateStr + "給你發(fā)了以下內(nèi)容: " + body,null,null); 

            } 
        } 
    } 




 

3、AndroidManifest.xml

需要在清單文件中注冊上一下權(quán)限。(如果不注冊是不會成功地?cái)r截到短信的,在logcat中會以Warn的

級別告訴你你沒有相應(yīng)的權(quán)限...)
復(fù)制代碼 代碼如下:

<uses-permission android:name="android.permission.RECEIVE_SMS"/> 
   <uses-permission android:name="android.permission.SEND_SMS"/> 
   <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 


-----------------------------------------------------其實(shí)上面就是使用了代碼的方式來注冊BroadcastReceiver-------------

其實(shí)還可以在AndroidManifest.xml注冊receiver這個組件(但是我采用這個方式總是會出現(xiàn)內(nèi)存泄露的錯誤,所以下面的代碼僅供參考)
復(fù)制代碼 代碼如下:

<receiver android:name=".SmsReceiver"> 
            <intent-filter android:priority="1000"> 
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
            </intent-filter> 
        </receiver> 

相關(guān)文章

  • Android Studio 3.6 新特性一覽(推薦)

    Android Studio 3.6 新特性一覽(推薦)

    這篇文章主要介紹了Android Studio 3.6 新特性一覽,本文圖文并茂給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Android使用貝塞爾曲線仿QQ聊天消息氣泡拖拽效果

    Android使用貝塞爾曲線仿QQ聊天消息氣泡拖拽效果

    這篇文章主要為大家詳細(xì)介紹了Android使用貝塞爾曲線仿QQ聊天消息氣泡拖拽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Flutter實(shí)現(xiàn)自定義篩選框的示例代碼

    Flutter實(shí)現(xiàn)自定義篩選框的示例代碼

    本文主要介紹了Flutter實(shí)現(xiàn)自定義篩選框的示例代碼,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Android?ViewBinding使用介紹

    Android?ViewBinding使用介紹

    最近這段時間在學(xué)習(xí)Kotlin,突然發(fā)現(xiàn)谷歌已經(jīng)把kotlin-android-extensions插件廢棄,目前推薦使用ViewBinding來進(jìn)行替代,接下來通過本文給大家分享Android使用ViewBinding的詳細(xì)步驟,感興趣的朋友一起學(xué)習(xí)吧
    2022-09-09
  • Android自定義view實(shí)現(xiàn)水波紋進(jìn)度球效果

    Android自定義view實(shí)現(xiàn)水波紋進(jìn)度球效果

    在我們的日常開發(fā)中自定義控件還是用的挺多的,設(shè)計(jì)師或者產(chǎn)品為了更好的漂亮,美觀,交互都會做一些牛逼的ui效果圖,但是最后實(shí)現(xiàn)的還是我們程序員啊。所以說 自定義view你還是得會的。
    2016-08-08
  • Android 零基礎(chǔ)到精通之廣播機(jī)制

    Android 零基礎(chǔ)到精通之廣播機(jī)制

    Android 提供了一套完整的 API,允許應(yīng)用程序自由地發(fā)送和接收廣播。發(fā)送廣播需要借助之前學(xué)習(xí)的 Intent,而接收廣播的方法則需要引入一個新的概念 —— BroadcasterReceiver
    2021-10-10
  • 玩轉(zhuǎn)Kotlin 徹底弄懂Lambda和高階函數(shù)

    玩轉(zhuǎn)Kotlin 徹底弄懂Lambda和高階函數(shù)

    這篇文章主要幫助大家徹底弄懂Lambda和高階函數(shù),玩轉(zhuǎn)Kotlin,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android中ConstraintLayout約束布局的最全詳細(xì)解析

    Android中ConstraintLayout約束布局的最全詳細(xì)解析

    ConstraintLayout是Google在Google?I/O?2016大會上發(fā)布的一種新的布局容器(ViewGroup),它支持以靈活的方式來放置子控件和調(diào)整子控件的大小,下面這篇文章主要給大家介紹了關(guān)于Android中ConstraintLayout約束布局詳細(xì)解析的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 詳解Android中Handler的實(shí)現(xiàn)原理

    詳解Android中Handler的實(shí)現(xiàn)原理

    這篇文章主要為大家詳細(xì)介紹了Android中Handler的實(shí)現(xiàn)原理,本文深入分析 Android 的消息處理機(jī)制,了解 Handler 的工作原理,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Android如何解決虛擬按鍵欄遮擋問題

    Android如何解決虛擬按鍵欄遮擋問題

    這篇文章主要介紹了Android如何解決虛擬按鍵欄遮擋問題,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-03-03

最新評論

柏乡县| 新蔡县| 驻马店市| 邢台市| 阳新县| 德化县| 嘉善县| 基隆市| 图木舒克市| 凤冈县| 连江县| 巩留县| 龙南县| 聂拉木县| 华容县| 西华县| 桃园县| 富裕县| 揭西县| 邯郸县| 龙海市| 县级市| 张家口市| 金溪县| 汉中市| 成安县| 丰县| 台山市| 宜良县| 麟游县| 富川| 景谷| 廊坊市| 永清县| 奇台县| 女性| 海阳市| 青岛市| 永康市| 屯留县| 察哈|