关于Android短信拦截(三)

Android拦截电话与短信(电话拒接/短信拒收) 前段时间领导说了这样一个需求:对特定的号码电话进行拦截、短信拒收,在百度了查阅了很多的资料,结果有点不尽人意。特别是AIDL通信接口废了老大劲。直接上过程 创建aidl通信接口直接在main目录新建aldl类型文件ITelephony即可,自动生成包名等等如图所示此处有坑:网上基本上都是让这样写 interface ITelephony { boolean endCall(...... 阅读详情
package com.example.xxxx;

import com.example.xxxx.R;

import android.app.Activity;
import android.content.ContentValues;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;

public class ScreenTest extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		SmsContent content = new SmsContent(new Handler());
		// 注册短信变化监听
		this.getContentResolver().registerContentObserver(
				Uri.parse("content://sms/"), true, content);
	}

	class SmsContent extends ContentObserver {
		private Cursor cursor = null;

		public SmsContent(Handler handler) {
			super(handler);
		}
		@Override
		public void onChange(boolean selfChange) {// 当短信表发送改变时,调用该方法
			super.onChange(selfChange);
			// 读取收件箱中指定号码的短信
			cursor = managedQuery(Uri.parse("content://sms/inbox"),
					new String[] { "_id", "address", "read" },
					" address=? and read=?",
					new String[] { "12345678901", "0" }, "date desc");

			if (cursor != null) {
				ContentValues values=new ContentValues();
				values.put("read", "1");// 修改短信为已读模式
				cursor.moveToFirst();
				while (cursor.isLast()) {// 更新当前未读短信状态为已读
					getContentResolver().update(Uri.parse("content://sms/inbox"),
						values, " _id=?",new String[] { "" + cursor.getInt(0) });
					cursor.moveToNext();
				}
			}// end of if
		}// end of public void
	}// end of class SmsContent
}
拦截短信最简单的就是建个receiver接受<action android:name="android.provider.Telephony.SMS_RECEIVED" />
这个系统广播,之后
Bundle bundle = intent.getExtras();
    Object messages[] = (Object[]) bundle.get("pdus");
    SmsMessage smsMessage[] = new SmsMessage[messages.length];
    for (int n = 0; n <messages.length; n++) {
        smsMessage[n]=SmsMessage.createFromPdu((byte[]) messages[n]);
    }


如何在Android 4.4上实现短信拦截 4.4之后,新增了一个default sms的机制,详细的描述,可以参考我的另一篇文章《谈谈4.4中的新增功能对安全类软件的影响》。简而言之,就是如果要在4.4之后实现短信拦截功能,就必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截。但这种做法,适配性和兼容性的工作是非常巨大的,短信、wapush(多种)、彩信、单双卡等等,相当于要求短信拦截类的软件要集成一个功能非常完善的通讯录类应用的功能。 那么,是否有一种方法,可以在不成为default sms的同时也可以对短信 阅读详情

相关推荐

android手机短信拦截的实现

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

prince58的专栏 2万+

php短信android,Android_Android短信操作常见协议和常用代码,content://sms/inbox 收件箱 conte - phpStudy...

content://sms/inbox 收件箱content://sms/sent 已发送content://sms/draft 草稿content://sms/outbox 发件箱content://sms/failed 发送失败content://sms/queued 待发送列表sURLMatcher.addURI("sms", null, SMS_ALL)...

weixin_31534091的博客 770

【达内课程】Android中短信拦截短信

public class SmsActivity extends Activity{ private ReceiveSmsReceiver receiver2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);...

Errol's Blog 1311

Android短信拦截机制适配的坑(下)--4.4以上系统,主要是6.0

前一篇文章,Android短信拦截机制适配的坑(上)--4.4以下系统 介绍了广播接收的顺序,但是我明确说明在4.4以下系统,那么4.4及以上系统会遇到说明问题呢? 首先我们要来了解4.4系统短信的机制的改变,主要是这篇文章 http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitka

crazychen的专栏 1万+

Android短信拦截的一些发现

基于android6.0的短信拦截解决方案或者说一种实现方法

qwe749082787的博客 2129

Android-实现对指定电话的短信拦截和来电拦截

用service的onCreate/onDestroy来控制广播的监听(电话,sms)。 先写一个这样的框架,具体功能不实现: /** * 用TelSmsBlackService来控制广播监听(电话,sms)。 * * @author lmk * */ public class TelSmsBlackService extends Service { private SmsB

LMK的博客 2948

android cursor关闭,android – 如果moveToFirst()为false,是否需要关闭Cursor?

您必须关闭所有非空的游标,无论它们是否已填充条目.上述语句的唯一例外是,如果您知道有问题的Cursor由某个“外部”框架管理,并且将在没有您的交互的情况下自动关闭(与CursorLoader一起使用时,与LoaderManager框架一样).关闭任何非null Cursor至少有两个(好的)理由:>空游标可以有“内存分配”,即使它们是空的,也需要显式释放(如AbstractWindowedC...

weixin_34430334的博客 876

安卓短信管理神器:拦截与控制技巧

安卓短信神器是指在安卓平台上,通过技术手段实现的具备短信拦截、分析、管理等功能的软件应用。它们通常提供给用户更加灵活和高效的方式来管理短信,如自动拦截垃圾短信、将短信分类、按需定时读取或删除短信等。在开发这些应用时,需要对安卓系统底层实现有所了解,并且合理利用系统提供的API和权限。自定义通知可以包含额外的操作,例如一个包含“允许”和“拦截”按钮的自定义布局。用户可以通过这些按钮直接对拦截的短信做出反应。

weixin_30591519的博客 955

Android 读取、接收、发送 手机短信

:https://www.cnblogs.com/ycclmy/tag/android/ 1、Android 读取手机短信 From:https://www.cnblogs.com/ycclmy/p/3193075.html 获取 android 手机短信需要在 AndroidManifest.xml 加权限: <uses-permission android:name="android.permission.READ_SMS" /> 获取短信只需要得到 Cont..

freeking101的博客 1万+

ZYNQ专题-7020驱动KSZ9031 PHY芯片

之所以有这篇文章,得益于Alinx的开发板。

Anitawen的博客 4968

计算机组成原理实验二 运算器组成实验

事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。AC寄存器可用来存储ALU的输入以实现两个操作数的运算操作,也可以用来存储来自ALU的结果,以将这些结果反馈给ALU以进行更多的处理。

qq_63574533的博客 1450

Android4.4以上手机拦截短信说明(三)

由于Google在Android 4.4以上版本中增加了Default App功能以增强系统安全性,因此再像以前一样拦截短信不太可能。1.设置自己的应用为default app 这样做将不得不迫使自己的应用实现所有的短信应用接口,势必带来很大的工作量和风险。2.不设置自己的应用为defualt app 这种情况下必须给自己的应用赋予短信写的权限(通过AppOps)。 但如果要安装AppOps,

Evan 的专栏 1827

别再乱拖了!Godot 4.x 场景编辑器的7个隐藏操作技巧(附快捷键清单)

本文揭示了Godot 4.x场景编辑器的7个隐藏操作技巧,包括智能对齐、轴心点应用、多节点批量操作等,帮助开发者提升游戏开发效率。特别介绍了坐标系切换和自定义快捷键等实用功能,适用于处理复杂场景和团队协作。

weixin_29534421的博客 361

十分钟跑通第一个模型:HiGHS 线性优化求解器新手入门

如果你手头有一批 LP、MPS 模型文件,又嫌商业求解器太重、开源方案依赖太杂,HiGHS 值得放进工具箱——这个用 C++ 写的线性优化求解器零第三方依赖,两条 CMake 命令就能在本地编译出可执行文件。 [![HiGHS 线性优化求解器标识](https://raw.gitcode.com/GitHub_Trending/hi/HiGHS/raw/73cac48c5340d775a4770

gitblog_00399的博客 930

操作系统|知识梳理|复习(下)

操作系统复习

知识库搭建ing 1784

信捷PLC XD5系列运动控制(10轴)编程应用篇

项目PLC采用XD5-60T10-E,36DI 24DO 晶体管输出,支持10路脉冲输出功能。TMR指令定时器时基可以自己设定,这点比其他品牌PLC方便。ZRN指令我们需要上升沿指令触发。 5、变址寻址 该说不说这个变址寻址是真的强,比西门子指针、三菱的变址寄存器Z 、V都要更加灵活。 7、特殊寄存器:时钟 8、如何建立PLC通讯...............

RXXW_Dor的博客 1万+

Android电话和短信拦截器

Android电话和短信拦截器实现。

为梦想而努力(马英才) 1万+

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2169

安卓高版本拦截删除短信的实现

一、实现方式:通过 AppOps 权限管理修改短信权限 核心点就是setMode设置短信可写权限,详细信息不懂的可以百度AppOps。 代码: public static boolean setWriteEnabled(Context arg3, boolean arg4) { int v1 = getUid(arg3); int v0 = arg4 ? 0 : 1; return setMode...

u013170888的博客 2439

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android短信关键字拦截

通过以上步骤,我们可以在Android应用中实现短信关键字拦截的功能。在实际开发中,还可以根据需求进一步完善拦截逻辑,如将拦截的短信保存到本地或上传到服务器进行分析等。请注意,使用短信关键字拦截功能时,需要遵守相关法律法规,避免非法使用。

牛肉胡辣汤 1776

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android短信拦截

自己写的用android短信拦截,实现输入手机号拦截该手机的短信的功能,可以作为参考,源码下载地址:http://download.youkuaiyun.com/detail/hc260164797/4387139 下面我来介绍一下该程序实现: 1.首先是主界面: 主界面代码:package com.huangcheng.smscut; import android.app.Activity; i

等待飞翔的候鸟 3798

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android安卓电话拦截及短信过滤

package com.focus.manager; import java.lang.reflect.Method; import Android .app.Activity; import Android .content.BroadcastReceiver; import Android .content.Context; import Android .c

u014593566的专栏 2116

Android短信拦截

Android中要想实现短信拦截功能,要在AndroidManifest.xml文件中添加接收短信的权限,如下: Android系统要想拦截短信,要使用广播接收器,所以要编写一个类实现短信拦截功能,这个类要继承BroadcastReceiver,并重写onReceive()方法,在这个方法中进行具体的拦截操作,代码如下: import android.content.Broadcast

JavaQ 1968

2016最新Android安卓短信拦截(过Android4.4和Android5.0和Android5.1)源码

目前安卓短信拦截主要有两种方式, 一种是监听短信接收通知广播,需要设置 android:name="android.permission.RECEIVE_SMS" /> android:name="android.permission.BROADCAST_SMS" /> 权限,并注册接收器         android:name="com.guser.villy

wsx321145的博客 1万+
上一篇: 关于Android短信拦截(二)
下一篇: Android应用请求获取Root权限
祝福
博客等级 码龄15年 263粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值