android-BroadcastReceiver 通过终止广播 阻止用户收到短信

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1,系统收到短信,发出的广播属于有序广播。

如果想阻止用户收到短信,可自定义Receiver,设置高优先级,率先获得接收短信的广播,并终止广播。

2,接收短信的广播名android.provider.Telephony.SMS_RECEIVED

3,注意:程序一旦在某个模拟器运行,将一直阻止短信,只有注释掉abortBroadcast(),重新运行,方可正常。


manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.song"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".C49_BroadcastSmsActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".MySmsResevicer">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>
    </application>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>

</manifest>

主activity

package com.song;

import android.app.Activity;
import android.os.Bundle;

public class C49_BroadcastSmsActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

receiver

package com.song;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MySmsResevicer extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		System.out.println("on receive");
		abortBroadcast();
	}
	
}




android手机短信拦截的实现 广播有两种不同的类型:普通广播(normal broadcasts)和有序广播(ordered broadcasts)。普通广播是完全异步的,可以被所有的接收接收到,并且接收者无法终止广播的传播。然而有序广播是按照接收者声明的优先级别,被接收者依次接收到。优先级别声明在 intent-filter 元素的 android:priority 属性中,数越大优先级别越高,取值范围:-1000到1000,优先级别也可以调用IntentFilter对象的setPriority()进行设置。有序广播接收者可以终止 阅读详情

相关推荐

Android短信应用——短信截获

之前写过一篇关于短信截获的文章,通过注册 BroadcastReceive 来获取短信信息。 但是我发现,当装了飞信,360手机安全卫士等同样有截获短信功能的程序后,我自己的程序就截获不到短信了;而且我还发现,当安装了飞信以后,Android 系统 的Notification 中就不会再有短信提示了。 在 BroadcastReveive 中,有 abortBroadcast() 方法

好想睡觉…… 2万+

demo短信拦截---BroadcastReceiver

package com.demo.sms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; public c

别了,温哥华的博客 538

Android Studio—广播拦截、指定广播接收者.zip

参考博客:https://blog.csdn.net/Da_Xiong000/article/details/105326901

android有序广播终止广播,Android有序广播

Android中有序广播的发送与接收有序广播:1.普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收接收到,消息传递的效率比较高,但缺点是是不能控制接收的顺序,接收者不能将处理结果传递给下一个接收者,并且无法终止广播,而有序广播可以解决以上问题2.有序广播是用权限控制多个广播接收接收同一个广播时的接收顺序,并且可以中止广播,也可以将广播接收接收的地方把值传给下一个接收广播接收器(不能...

weixin_39969060的博客 488

Android】利用广播Broadcast接收SMS短信

BroadcastReceiver package com.app.test02; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephon

欲买桂花同载酒,终不似,少年游。 6366

android 有序广播 如何终止,Android-有序广播是可以中断的

在之前的博客,Android-广播概念,中介绍了(广播广播接收者)可以组件与组件之间进行通讯,有两种类型的广播(无序广播 和 有序广播),这篇博客就来讲解有序广播的代码实现:有序广播接收者可以自己设置接受的顺序,所以叫有序广播有序广播是可以中断的,而指定某个接收者的有序广播是无法中断的在AndroidManifest.xml订阅 两个接收者定义 MyBroadcastReceiver1 接收者...

weixin_39604557的博客 852

android 4.4 设置默认短信 和来电短信拒接

怎么开发default SMS app     现存的短信App不会默认升级为default SMS app,需要完成Android新的规范协议。Android 4.4中,系统收到短信时,只有一个应用能收到SMS_DELIVER_ACTION,这个应用就是default SMS app,WAP_PUSH_DELIVER_ACTION也是类似。如果现存的短信App不做改造,运行在Andro

subaohao的专栏 1万+

Android短信拦截解决方案

转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=83715&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1 package com.tigertian.sms; import an...

weixin_34195546的博客 96

Android广播机制—拦截接收短信

做了个例题。 这个例题拦截了短信内容。 先来看下功能。       我们先给自己的虚拟机发送一条短信。  内容是  I love you ... 然后看下我们的虚拟机。 收到短信 注意: 左上角那个Notification没有收到短信的内容, 我们用一个Toast输出了这个短信的信息。 拦截掉了 来看一下代码: 首先这个例

奋斗吧。 1809

Android 广播机制 详解

Android接收器中onReceive以经为我们想到的,同样的你必须在Intent-filter里面注册该动作,可以是系统的广播动作也可以是自己需要的广播,之后你之需要在onReceive方法中,通过intent.getAction()判断传进来的动作即可做出不同的处理,不同的动作。一个经典的电话黑名单,首先通过将黑名单号码保存在数据库里面,当来电时,我们接收到来电广播并将黑名单号码与数据库中的某个数据做匹配,如果匹配的话则做出相应的处理,比如挂掉电话、比如静音等等。

2501_90252650的博客 732

android基础--广播接收-BroadcastReceiver

广播接收BroadcastReceiver用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast(),Context.sendOrderedBroadcast()来实现的。        一个广播可以被多个订阅了此广播接收接收

proheart的专栏 1316

Android四大组件之BroadcastReceiver---普通广播、有序广播广播注册以及注意事项

BroadcastReceiver两种发送方式 广播BroadcastReceiver被分为两种不同的类型:“普通广播(Normal broadcasts)”和“有序广播(Ordered broadcasts)”。 普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播; 有序广播是按照接收者声明的优先级别(声明在intent-filter元素的android:priority属性中,

奋斗的左撇子 1036

广播接收--BroadcastReceiver

广播接收--BroadcastReceiver         广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收,这个特性跟JMS中的Topic消

gaohongijj的专栏 1196

Android学习笔记_19_广播接收BroadcastReceiver及其应用_窃听短信_拦截外拨电话

一、广播接收者类型:   广播被分为两种不同的类型:“普通广播(Normal broadcasts)”和“有序广播(Ordered broadcasts)”。 普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播; 然而有序广播是按照接收者声明的优先级别(声明...

anwenzhao0749的博客 290

android阻止广播发送,处理Android中,设置应用的优先级最高,然而短信应用依然最先收到广播导致无法拦截短信的问题...

//拦截短信验证码的广播IntentFilter intercptFilter = new IntentFilter();intercptFilter.addAction(SmsInterceptReceiver.ACTION_SMS_INTERCEPT);intercptFilter.setPriority(Integer.MAX_VALUE);smsInterceptReceiver = ne...

weixin_29415667的博客 292

Android核心组件之BroadCastReceiver

什么是BroadCastReceiver           BroadcastReceiver 中文意思是“广播接收者”,它主要是用于接收应用程序或是系统发送过来的广播并根据广播内容进行相关响应的一类组件。BroadcastAndroid系统中应用的非常广泛,比如电池状态的变化、电话的接收短信接收、键盘输入法切换和网络连接状态变化都会由系统发送一个广播,然后应用程序通过BroadCast

叶功恒的博客专栏 2088

BroadcastReceiver

BroadcastReceiver组件本质上是一个全局监听器,用于监听系统全局的广播消息。它可以非常方便地实现系统中不同组件之间的通信。

803

android开机广播过滤_Android面试题6–BroadcastReceiver广播

BroadcastReceiver是四大组件之一,有接收广播机制,相对应就有发送广播机制。Android中,通过该机制,使得消息能在各个组件间、各个进程间传递,起到邮递员的作用。BroadcastAndroid系统中应用的非常广泛,比如电池状态的变化、电话的接收短信接收、键盘输入法切换和网络连接状态变化都会由系统发送一个广播,然后应用程序通过BroadCastReceiver可以监听这些广播...

weixin_39577289的博客 337
上一篇: android-BroadcastReceiver 发送有序广播
下一篇: android-BroadcastReceiver 系统开机广播
superjunjin
博客等级 码龄17年 600粉丝 133原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值