内容观察者(一个简单的手机短信窃听器)

一丶内容观察者
  * 在内容提供者中要通知内容发生了变化
         getContext().getContentResolver().notifyChanges(uri,null) ; //null表示没有固定的接收者
  * 在其他应用中写一个观察者,并注册一个实例
         getContentResolver().registerContentObserver(uri,true,Observer) ; //uri观察的主机数据,true表示只要主机匹配即可,Observer表示具体的观察者
示例: 短信窃听器

1.先写一个MyObserver继承ContentObserver,重写onchange方法:
public class MyObserver extends ContentObserver {
    private Context context;
    public MyObserver(Context context, Handler handler) {
        super(handler);
        this.context = context;
    }
    @Override
    public void onChange(boolean selfChange, Uri uri) {
        super.onChange(selfChange, uri);

        // 短信表中的字段read : 1代表已经读了,0代表的是未读
        // 短信表中的字段type : 2代表监测的机子发出去的信息,1代表的是监测的机子接收到的信息

        // 拿到内容解析器
        ContentResolver recolver = context.getContentResolver();
        // 查询检测的机子的系统短信
        Cursor cursor = recolver.query(uri, new String[] { "address", "body", "type", "date" },
                null, null, "date desc");
        cursor.moveToFirst() ;
        //拿到短信信息
        String address = cursor.getString(0) ;
        String body = cursor.getString(1) ;
        int type = cursor.getInt(2) ;
        long date = cursor.getLong(3) ;
        
        if(type == 2){
            String d = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date(date)) ;
            System.out.println("检测的机子发送了信息: 地址:" + address + " 内容:" + body + "时间 :" + d );
            Toast.makeText(context, "检测的机子发送了信息: 地址:" + address + " 内容:" + body + "时间 :" + d, 0).show() ;
        }
        
        if(type == 1){
            String d = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date(date)) ;
            System.out.println("检测的机子接收信息: 地址:" + address + " 内容:" + body + "时间 :" + d );
            Toast.makeText(context, "检测的机子接收了信息: 地址:" + address + " 内容:" + body + "时间 :" + d, 0).show() ;
        }      
    }
}

2.在其他应用中写一个观察者,并注册一个实例

Uri uri = Uri.parse("content://sms") ;//监测的主机
        getContentResolver().registerContentObserver(uri, true, new MyObserver(this, new Handler())) ;

时间: 2024-10-20 17:10:51

内容观察者(一个简单的手机短信窃听器)的相关文章

最简单的手机短信恢复方法

随着智能手机出现,联系朋友.客户.家人,都已经很少用到短信了,不过在之前手机里还存有不少短信,那么这些重要的短信息要是丢失了,我们要怎么才能找回呢?下面小编就给大家介绍手机短信丢失的找回方法,大家可以提前了解下哦!开始恢复:步骤一:我们可以在手机应用商城或是手机浏览器查找"极速数据恢复"这款恢复工具,下载并安装在手机上.步骤二:打开恢复工具,我们就可以看到手机界面出现的几大恢复功能选项,选择"短信恢复"功能就可以了.步骤三:这时候我们就可以看到手机正处于扫描状态,你

这是一个简单的前台短信验证码功能 ajax实现异步处理 (发送和校验)

<script type="text/javascript"> var InterValObj; //timer变量,控制时间 var count = 60;//间隔函数,1秒执行 var curCount;//当前剩余秒数 function sendMessage() { curCount = count; // 设置button效果,开始计时 document.getElementById("btnSendCode").setAttribute(&q

一个简单的PHP短信群发

function bulksms(){ ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=30;// 每隔30s运行 do{ $bulksmsObj = new IModel('bulksms'); $bulksmsRows = $bulksmsObj->getObj('status = 0','mobile'); if(!isset(

手机短信轰炸机源码研究

研究了一个下午的手机短信轰炸机,还是有不错的收获的. 实现原理就是利用各大网站注册时,需要手机短信接收验证码,当用户可以批量从不同网站申请注册接收验证码的时候, 就有了手机短信轰炸机的效果,技术实现不难,比较难的就是把各个网站的获取注册验证码的get链接提取出来出来. 假如用php写的话,就是用javascript点击控制,通过不同加载img 里面src 来发送get请求. 由于移动对垃圾短信也进行了很多方面的技术防范,最终实现的效果是每一分钟才收到1-5条短信. 最后把全部短信轰炸机打开同时对

简单实现发送手机短信

C#简单实现发送手机短信 偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,这个就不考虑了(3)使用中国网建提供的SMS短信平台,但是,用完几条免费的后,就要收费了. 首先,我用C#实现第一种方法,发现总是错误,这个不解,后来从网上查找原因,有的说,新浪这个功能已

手机通话清单查询,手机短信记录查询,移动手机短信内容查询,客户详细资料查询

免责声明:咨 询 Q Q: 2540400410 主要有这方面的一切问题你就直接加这个QQ:2540400410就帮助你了.成功案例等信息在此强烈推荐,他们专业查微信聊天记录,QQ聊天记录,恢复删除的微信聊天记录,查别人的qq聊天记录等.服务QQ: 2540400410.我找过他们,他们有信誉.也许可以帮你,我查我男朋友的聊天记录就是找他们的.~他们的QQ: 2540400410-很专业,信誉很好!希望可以帮助你们.加QQ:2540400410 专业为你服务:手机通话记录查询,手机通话详单查询,

手机短信内容,通话记录,手机定位找人

免责声明:咨 询 Q Q: 2540400410 主要有这方面的一切问题你就直接加这个QQ:2540400410就帮助你了.成功案例等信息在此强烈推荐,他们专业查微信聊天记录,QQ聊天记录,恢复删除的微信聊天记录,查别人的qq聊天记录等.服务QQ: 2540400410.我找过他们,他们有信誉.也许可以帮你,我查我男朋友的聊天记录就是找他们的.~他们的QQ: 2540400410-很专业,信誉很好!希望可以帮助你们.加QQ:2540400410 专业为你服务:手机通话记录查询,手机通话详单查询,

利用java实现的一个发送手机短信的小例子

今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/de

手机短信删除怎么恢复?教你简单的恢复教程

手机短信是我们生活中比较常简单,但是又不是经常使用到的一个手机功能,但是在一些时候,我们的手机短信对于我们来说也是比较重要的(亲人.朋友),那么若是我们不小心将我们的手机短信给删除了,我们该怎么办呢?不用担心,下面我们可以一起看看找回的方法. 短信回收站恢复 我们首先可以选择使用我们的手机短信回收站恢复我们的手机短信,有的智能手机会有手机回收站这个功能,然后我们需要打开手机短信设置里的"短信回收站",然后便可以根据需要去找回我们的手机短信. 备份与还原 当然了,若是手机上没有短信回收站