当前位置:  编程技术>移动开发

android短信拦截的实现代码

    来源: 互联网  发布时间:2014-10-21

    本文导语:  短信拦截的实现主要是使用了广播接收者来实现。 BroadcastReceiver  广播接收者   必须指定要接收的广播类型。必须明确的指定action 广播:事件。普通广播: 是异步的。会广播接收者同时接收,不能被中断sendBroadcast()有序广...

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

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

 
广播:事件。
普通广播: 是异步的。会广播接收者同时接收,不能被中断
sendBroadcast()
有序广播: 是同步的。会根据广播接收的优先级进行接收,是可以中断   短信到来广播
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 + "给你发了以下内容: " + 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这个组件(但是我采用这个方式总是会出现内存泄露的错误,所以下面的代码仅供参考)
代码如下:

 
             
                 
             
         

    
 
 

您可能感兴趣的文章:

  • Android拦截外拨电话程序示例
  • android 自定义Android菜单背景的代码
  • android panellistview 圆角实现代码
  • android 简单图片动画播放的实例代码
  • android网络编程之android连接网络的简单示例代码
  • 用ubuntu下载的android源代码不知下到哪去了
  • Android发送短信功能代码
  • Android Bitmap和Drawable相互转换的简单代码
  • android WakeLock使用方法代码实例
  • android自动安装apk代码实例(不使用apk安装器安装)
  • 控制Android LED灯颜色的代码实例
  • android通过bitmap生成新图片关键性代码
  • android 跳转进市场的实现代码
  • Android键盘显示与隐藏代码
  • Android中监听系统网络连接打开或者关闭的实现代码
  • Android 显示和隐藏输入法实现代码
  • Android点亮屏幕或屏幕解锁和锁定以及其他相关权限实现代码
  • Android中Root权限获取的简单代码
  • android downsample降低音频采样频率代码
  • android连接wifi时获取广播地址代码
  • android layout 按比例布局的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • android开发:“android:WindowTitle”没有对应项no resource iis7站长之家
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3