MainActivity.java

package com.example.broadcasttest;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends ActionBarActivity {
Button btn01;
Button btn02;
Button btn03;
Button btn04;
private final static String ACTION_SMS = "android.provider.Telephony.SMS_RECEIVED";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn01 = (Button)findViewById(R.id.btn01);
btn02 = (Button)findViewById(R.id.btn02);
btn03 = (Button)findViewById(R.id.btn03);
btn04 = (Button)findViewById(R.id.btn04);
btn01.setOnClickListener(new myListenr());
btn02.setOnClickListener(new myListener2());
btn03.setOnClickListener(new myListenr());
btn04.setOnClickListener(new myListenr());
} class myListenr implements OnClickListener{ @Override
public void onClick(View view) {
// TODO Auto-generated method stub
if(R.id.btn01==view.getId()){
//开启广播
Intent intent = new Intent();
// intent.setAction(Intent.ACTION_EDIT);//
intent.setAction(Intent.ACTION_SEARCH);
MainActivity.this.sendBroadcast(intent); }else if(R.id.btn03==view.getId()){
//开启广播
Intent intent = new Intent();
intent.setAction(ACTION_SMS);
System.out.println("准备模拟发送短信");
MainActivity.this.sendBroadcast(intent); }else if(R.id.btn04==view.getId()){
//开启广播
TestBCReceiver02 receiver = new TestBCReceiver02();
System.out.println("==取消监听==");
MainActivity.this.unregisterReceiver(receiver);//这里会导致app崩溃,暂时不知道原因
}
} }
class myListener2 implements OnClickListener{ @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//注册广播事件
//1.获取recevier
TestBCReceiver02 receiver = new TestBCReceiver02();
//2.生成一个IntentFilter对象
IntentFilter filter = new IntentFilter();
//3.为intentFilter添加一个action
filter.addAction(ACTION_SMS);
MainActivity.this.registerReceiver(receiver, filter);
} }
}

  Recvier的实现类:

package com.example.broadcasttest;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; public class TestBCReceiver02 extends BroadcastReceiver{
public TestBCReceiver02(){
System.out.println("BC02的构造器开始了,。。。。。");
}
@Override
public void onReceive(Context arg0, Intent arg1) {
System.out.println("收到短信了");
} }

  Receiver实现类2

package com.example.broadcasttest;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; public class TestBroadcastReceiver extends BroadcastReceiver{ public TestBroadcastReceiver(){
System.out.println("receiver开始了,,,,");
} @Override
public void onReceive(Context arg0, Intent arg1) {
System.out.println("onReceive.....");
} }

  

Android广播——短信拦截的更多相关文章

  1. Android的BroadcastReceiver 广播 短信拦截

    如何去理解BroadcastReceiver(广播)?其实可以这样想,首先我们要有一个发送广播的"媒体",在这个例子中,我们暂且用activity组件作为这个媒体,当然以后会用到s ...

  2. android之短信拦截器

    下面通过短信拦截器来介绍短信中的广播 布局文件 在布局文件中可以设置需要拦截的号码 <?xml version="1.0" encoding="utf-8" ...

  3. Android -- 怎么发出和接收广播, Broadcast, 电话拨号拦截,短信拦截

    1. 发送广播 使用以下三个API可以发送广播 public void click(View view){ Intent intent = new Intent(); intent.setAction ...

  4. [android] 手机卫士黑名单功能(短信拦截)

    前面我们把需要拦截的手机号都存储和展示出来了,接下来是使用广播接收者拦截短信了,这个广播接收者需要和一个服务绑定,服务开启的时候,接收者存在,服务停掉时,接收者关闭 在service包下定义一个类Ca ...

  5. Android开发——短信电话拦截/接听电话

    1.短信拦截 首先需要声明的是,Android4.4版本以上,如果想做到短信拦截,必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截.但这种做法,适配性和兼容性的工作是非常 ...

  6. Android应用源码安卓短信拦截木马项目源码

    温馨提示:本资源由源码天堂整理提供下载转载时请留下链接说明:http://code.662p.com/view/9174.html安卓短信拦截木马源码主要功能就是开机后台启动,拦截本机收到的短信并且转 ...

  7. android手机短信获取

    关于Android中对短信的一些相关操.我看到一个文章下面我就从标题中的三个方面来对Android系统中的短信操作进行一个简单地学习. 短信发送: 由于Android中对短信发送方法的优良封装,之后对 ...

  8. 【Android】Android解析短信操作

    目录结构: contents structure [-] 获取短信 发送短信 1.获取短信 在AndroidManifest.xml中,添加权限: <uses-permission androi ...

  9. Android接收短信

    Android收到短信时会广播android.provider.Telephony.SMS_RECEIVED消息,因此只要定义一个Receiver,收听该消息,就能接收短信. <receiver ...

随机推荐

  1. jquery的extend()函数

    extend()是在写插件的过程中常用的方法,该方法有一些重载原型. 1.该方法的原型是: extend(dest,src1,src2,src3...); 它的含义是将src1,src2,src3.. ...

  2. chroot命令

    CHROOT就是Change Root,也就是改变程序执行时所参考的根目录位置.通过chroot机制来更改某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有 ...

  3. JetBrains IntelliJ IDEA for Mac 15.0 破解版 – Mac 上强大的 Java 集成开发工具

    应网友要求更新. IntelliJ IDEA 是最强大的 Java IDE 之一,由知名的Jetbrainsg公司出品,最新版本增加了大量强大易用的特性,比如 Java 8 的Lambda 表达式调试 ...

  4. Android 实现简单天气应用

    引导页面,多个城市的天气,可以通过滑动来翻阅. 先看下截图: 1.城市天气界面 2.引导界面 应用引导页面 package org.qxj.iweather.page; import org.qxj. ...

  5. android使用全局变量的两种方法

         在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的.这里我写了使用全局变量的两种方法: 1.使用applicati ...

  6. NSDate conversion utilities

    // Gets UTC NSDate from DateTime(.Net/WCF). + (NSDate *)fromDateTime:(NSString *)dateTime { NSDate * ...

  7. 《Java虚拟机原理图解》 1.2.2、Class文件里的常量池具体解释(上)

    [last updated:2014/11/27] NO1.常量池在class文件的什么位置? 我的上一篇文章<Java虚拟机原理图解> 1.class文件基本组织结构中已经提到了clas ...

  8. python 面试相关

    python单例模式: Python真的需要单例模式吗?我指像其他编程语言中的单例模式. 答案是:不需要!  因为,Python有模块(module),最pythonic的单例典范.模块在在一个应用程 ...

  9. js字符串大小写转换

    var str = 'hello world'; alert(str.toUpperCase());//将字符串转换为大写. alert(str.toLowerCase());//将字符串转换为小写. ...

  10. Webform中Repeater控件--绑定嵌入C#代码四种方式

    网页里面嵌入C#代码用的是<% %>,嵌入php代码<?php ?> 绑定数据的四种方式: 1.直接绑定 <%#Eval("Code") %> ...