热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android开发分享android短信拦截的实现代码

短信拦截的实现主要是使用了广播接收者来实现。broadcastreceiver 广播接收者  必须指定要接收的广播类

短信拦截的实现主要是使用了广播接收者来实现。

broadcastreceiver  广播接收者   必须指定要接收的广播类型。必须明确的指定action

 
广播:事件。
普通广播: 是异步的。会广播接收者同时接收,不能被中断
sendbroadcast()
有序广播: 是同步的。会根据广播接收的优先级进行接收,是可以中断   短信到来广播
sendorderbroadcast()
priority的范围是:-1000 ~ 1000
如果有序广播明确的指定了广播接收者,他是无法被中断的。

上述就是android开发分享android短信拦截的实现代码的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—编程笔记

代码实现如下:

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 + “给你发了以下内容: ” + body); 

            if(address.equals(“5558”)){ 
                abortbroadcast(); 
                smsmanager smsmanager = smsmanager.getdefault(); 
                smsmanager.sendtextmessage(“5556″,null,address +” 于  ” + datestr + “给你发了以下内容: ” + body,null,null); 

            } 
        } 
    } 

 

3、androidmanifest.xml

需要在清单文件中注册上一下权限。(如果不注册是不会成功地拦截到短信的,在logcat中会以warn的

级别告诉你你没有相应的权限…)

代码如下:
 
    
    

—————————————————–其实上面就是使用了代码的方式来注册broadcastreceiver————-

其实还可以在androidmanifest.xml注册receiver这个组件(但是我采用这个方式总是会出现内存泄露的错误,所以下面的代码仅供参考)

代码如下:
 
             
                 
           
 
       
 


推荐阅读
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
author-avatar
苟姝慧_788
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有