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

android短信攔截的實現代碼

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

短信攔截的實現主要是使用了廣播接收者來實現。

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

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

代碼實現如下:

1、MainActivity

復制代碼 代碼如下:

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
復制代碼 代碼如下:

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ā)了以下內容: " + body); 

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

            } 
        } 
    } 




 

3、AndroidManifest.xml

需要在清單文件中注冊上一下權限。(如果不注冊是不會成功地攔截到短信的,在logcat中會以Warn的

級別告訴你你沒有相應的權限...)
復制代碼 代碼如下:

<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"/> 


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

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

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

相關文章

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

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

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

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

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

    Flutter實現自定義篩選框的示例代碼

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

    Android?ViewBinding使用介紹

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

    Android自定義view實現水波紋進度球效果

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

    Android 零基礎到精通之廣播機制

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

    玩轉Kotlin 徹底弄懂Lambda和高階函數

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

    Android中ConstraintLayout約束布局的最全詳細解析

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

    詳解Android中Handler的實現原理

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

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

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

最新評論

洮南市| 广河县| 吴忠市| 天全县| 大厂| 龙游县| 九寨沟县| 镇远县| 西城区| 融水| 安阳市| 阿勒泰市| 布尔津县| 通海县| 信阳市| 广宗县| 梁河县| 大足县| 娱乐| 宜丰县| 外汇| 株洲县| 广南县| 清涧县| 澜沧| 巴彦淖尔市| 察雅县| 故城县| 齐齐哈尔市| 平乐县| 昭平县| 石嘴山市| 长泰县| 济阳县| 林州市| 延吉市| 汶川县| 都昌县| 四平市| 衢州市| 贺州市|